如果我有下面的代码,我该如何检测窗口关闭的时间,以便我可以退出? r
似乎从来没有得到的值
-1
0
,我需要为整个线程处理消息,而不仅仅是当前窗口。Win32消息循环:使用GetMessage(&msg,NULL,0,0)关闭窗口后退出?
HWND hWnd = CreateWindowExW(0, L"Edit", L"My Window", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 300, 200, NULL, NULL, NULL, NULL);
ShowWindow(hWnd, SW_SHOWDEFAULT);
MSG msg;
BOOL r;
while ((r = GetMessageW(&msg, NULL, 0, 0)) != 0)
{
if (r == -1) { break; }
TranslateMessage(&msg);
DispatchMessageW(&msg);
}
对不起,我完全忘了'r == -1'不是关闭条件。但是它不是应该用`r == 0`退出吗?它怎么没有这样做? (顺便说一句,我`WM_QUIT`永远不会发送到循环中。) – Mehrdad 2011-02-04 00:46:14