一个标准的窗口过程函数采用这个原型:
LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
当消息如WM_MOUSEMOVE
orWM_CHAR
时,该WndProc
函数将接收消息源自的窗口,以及任何额外的参数,这些参数将带有 msg 和 wParam/lParam。
我现在拥有的是一堂课。说
class Random
{
public:
void Initialize ();
private:
void Draw ();
HWND hWnd;
friend LRESULT CALLBACK RandomProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
};
由hWnd
初始化创建后Initialize ()
,会发送WM_LBUTTONDOWN
to等消息RandomProc
。一旦收到消息,我想RandomProc
用它Draw ()
来重绘类的窗口Random
。
问题是,我将有多个Random
变量,每个变量都有一个窗口。所有的窗口都会将它们的消息发送给RandomProc
,并且会希望它重新绘制相应的窗口hWnd
。我不知道哪个随机变量根据 hWnd 参数和 msg/wParam/lParam 发送了消息,因此无法访问相应的Draw ()
函数,也无法重绘正确的窗口。
有没有办法在每次发送消息时将指向窗口类的指针传递给过程,或者是否有另一种方法可以访问其 hWnd 发送消息的 Random 类?