消息循环

消息循环

Windows应用程序的运行以消息为核心,Windows将产生的消息放入应用程序的消息队列中,而应用程序WinMain函数的消息循环提取队列中的消息,并将信息传给窗口函数的相应过程。

消息循环的常见格式如下:

MSG Msg;

...

while ( GetMessage( &Msg, NULL, 0, 0 ) )

{

TranslateMessage( &Msg );

DispatchMessage( &Msg );

}

其中函数GetMessage的作用是从消息队列中读取一条信息,并将信息放在一个MSG结构中,其形式为:

GetMassage

( lpMSG,

  hwnd,

  nMsgFilterMin,

  nMsgFilterMax

)

值得注意的是,GetMessage函数中的参数nMsgFilterMin和nMsgFilterMax可实现对消息的过滤,即程序仅处理所确定的消息号范围内的消息,如果两个参数都为0,则不过滤消息。

TranslateMessag函数负责将消息的虚拟间转换为字符信息,其形式为:

TranslateMessage( lpMSG )

DispatchMessage函数将参数lpMSG指向的消息传送到指定窗口函数,其形式为:

DispatchMessage( lpMSG )

当GetMessage函数返回零值,检索到WM_QUIT时,程序将结束循环并退出。

你可能感兴趣的:(消息循环)