我是win32-platform的初学者,有一些关于
的问题BOOL GetMessage(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax) ;
我不知道wMsgFilterMin
和wMsgFilterMax
是什么意思?谢谢.....
答案 0 :(得分:2)
首先,请记住,GetMessage()仅返回已发布的消息。其中没有很多,鼠标和键盘消息,WM_INPUT,WM_TIMER,WM_PAINT,WM_QUIT。加上你自己的代码通过调用PostMessage(),WM_USER +消息提供的任何代码。
使用过滤器非常不寻常,通常会传递0和0,因此不会过滤任何内容。您可能考虑传递WM_PAINT以刷新所有待处理的绘制请求。我认为没有任何理由过滤鼠标或键盘信息。但确定的用例是您自己发布的消息。例如,通常用于将通知从工作线程传递到UI线程。您可能希望对它们进行过滤,以便在任何常规消息之前对其进行处理。
把它放在你的后袋里。你可能有一天会使用它。
答案 1 :(得分:0)
范围从wMsgFilterMin到wMsgFilterMax到过滤。
消息号:WM_XX,例如WM_CREATE(0x0001),WN_PAINT(0x000f),范围从0x0001到0x000f将被返回。
如果只需要一种消息,那么使wMsgFilterMin等于wMsgFilterMax。
如果没有过滤(返回所有消息类型),则将wMsgFilterMin和wMsgFilterMax都放在0。