消息循环

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时,程序将结束循环并退出。

posted on 2006-12-11 15:00 bullGao 阅读(235) 评论(0)  编辑 收藏 引用 所属分类: VC++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2006年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

留言簿(1)

随笔分类

随笔档案

收藏夹

搜索

最新评论