1
我有以下代码的GetMessage /的PeekMessage - 删除在消息队列中的所有消息
SendApp,当点击按钮[X],下面的代码执行
HWND pHWndReceiveApp = FindWindowA(NULL, "ReceiveApp");
if (NULL == pHWndReceiveApp)
{
MessageBox(0, MSG_FAIL, CAPTION, 0);
return;
}
for (int i = 0; i < 7; i++)
{
PostMessageA(pHWndReceiveApp, 9, 9, 0);
}
MessageBox(0, MSG_OK, CAPTION, 0);
ReceiveApp,这仅仅是一个应用程序来收到SendApp消息
int i = 0;
msg.message = 69;
while (WM_QUIT != msg.message)
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) > 0)
{
if (msg.message == 9)
{
//I want to remove all messages in the message queue before increase i
++i;
Sleep(1000);
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
因此,大家可以看到,我想增加变量i ReceiveApp前去除所有消息在消息队列中。 我读this article并看到
PM_REMOVE - 消息从处理后的队列由 的PeekMessage除去。
我认为所有的消息都应该被删除,但是他们没有,在SendApp中按下按钮[X]之后,ReceiveApp中的变量仍然会增加7。
那么如何删除消息队列中的所有消息?