Is there a way to wrap WndProc as private member?
If I have this:
class Window
{
public:
Window();
virtual ~Window();
void create();
private
You should add the static
modifier to it.
The reason for this, is that when it's a member function (which I believe is a __thiscall
in Visual C++), it's actually just a C function taking this
as the first parameter. This would look like this:
LRESULT CALLBACK WndProc(Window& this, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
If you make it static, the compiler gets rid of the first Window& this
parameter, making it compatible with lpfnWndProc
.