15,473
社区成员




void Test()
{
MSG msg;
while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE));
DWORD threadId = GetCurrentThreadId();
int n = 0;
while (PostThreadMessage(threadId, WM_USER, 0, 0)) n++;
printf("PostThreadMessage return FALSE, n=%d.\n", n);
PeekMessage(&msg, 0, 0, 0, PM_REMOVE);
if (PostThreadMessage(threadId, WM_USER, 0, 0))
printf("PostThreadMessage return TRUE after PeekMessage.\n");
else
printf("PostThreadMessage return FALSE after PeekMessage.\n");
printf("Clear message queue. Let n=0\n");
while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE));
n = 0;
while (PostThreadMessage(threadId, WM_USER, 0, 0)) n++;
printf("PostThreadMessage return FALSE, n=%d.\n", n);
}