应用程序通过消息循环来获得对消息的处理

时间:2021-03-27 20:28:48

http://www.vczx.com/tutorial/mfc/mfc4.php

 

每个GDI应用程序在主窗口创建之后,都会进入消息循环,接受用户输入、解释和处理消息。

消息循环的结构如下:

while (GetMessage(&msg, (HWND) NULL, 0, 0)) {//从消息队列得到消息

if (hwndDlgModeless == (HWND) NULL ||

!IsDialogMessage(hwndDlgModeless, &msg) &&

!TranslateAccelerator(hwndMain, haccel, &msg)) {

TranslateMessage(&msg);

DispatchMessage(&msg); //发送消息

}

}

消息循环从消息队列中得到消息,如果不是快捷键消息或者对话框消息,就进行消息转换和派发,让目的窗口的窗口过程来处理。

当得到消息WM_QUIT,或者::GetMessage出错时,退出消息循环。