为了防止 WM_LBUTTONUP 事件被代码淹没,我决定创建一个包含最初在 WM_LBUTTONUP 上触发的代码的类方法。
例子:
case WM_LBUTTONUP:
{//Code that used to trigger on WM_LBUTTONUP below:
x=4;
y=2;
SendMessage(hWnd, CUSTOM_WMMESSAGE, NULL, NULL);
}//The above SendMessage() call works
方法定义:
void Dog::bark(HWND hindow, INT wm_message)
{//All code that used to trigger on WM_LBUTTON up was moved to this method
x=4;
y=2;
SendMessage(hwindow, wm_message, NULL, NULL);
}
之后:
case WM_LBUTTONUP:
{Object.bark();}
//When SendMessage was called this way (inside of a method definition)
//it did not work!
问题:
当未在类方法中使用时,SendMessage() 对 WM_LBUTTONUP 起作用。但是,一旦我从 WM_LBUTTONUP 上的类方法调用 SendMessage(),消息就没有发送(这意味着 SendMessage() 没有,或者从类方法调用时不起作用)。
请注意:
方法定义与 WM_LBUTTON 不在同一个文件中(我想保持这种方式,以防止 main.cpp 填充太多代码:))
编辑
包含类定义的文件名为 Dog.hpp 我将 Dog.hpp 包含在 main.cpp 中。我已经成功创建了其他有效的类方法(在 dog.hpp 内部),所以我知道类或头文件代码没有任何问题。唯一的问题是,当在 dog.hpp 中调用 SendMessage() 函数时,与在 main.cpp 中调用相反,它不起作用。