发现点击窗口关闭按钮,等待很长时间进程也不能退出。发送WM_QUIT消息给UI线程让其退出;
进程也没能退出,是因为主线程UI线程,没有退出导致的。但是在进程管理器中能够杀死该进程。
在发送WM_QUIT消息的地方,用TerminateThread()强杀线程,线程如期被干掉,进程终于退出了。
原来是在线程中使用GetMessage接收消息,而接收到这个消息后GetMessage返回0,就是这个0,如果不让其退出也是可以的while循环不退出。
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
{
MSG msg;
// 主消息循环:
while (GetMessage(&msg, nullptr, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_COMMAN