消息循环

来源:互联网 发布:mysql创建索引的优缺点 编辑:程序博客网 时间:2024/05/19 21:00

消息驱动

Windows是消息驱动的系统,消息是应用程序与操作系统之间的通信方式,Windows应用程序是基于消息的程序设计模式。

运行原理

Windows 中有一个系统消息队列,对于每一个正在执行的Windows应用程序,系统为其建立一个“消息队列”,即应用程序队列,用来存放该程序可能创建的各种窗口的消息。应用程序中含有一段称作“消息循环”的代码,用来从消息队列中检索这些消息并把它们分发到相应的窗口函数中。

主函数WinMain ( )消息分发代码段

while(GetMessage(&msg,NULL,0,0)){        //从消息队列中取得消息       TranslateMessage(&msg);       //检索并生成字符消息WM_CHAR       DispatchMessage(&msg);       //将消息发送给相应的窗口函数}
其实所谓“消息循环”,实际是程序循环。
Windows 应用程序创建的每个窗口都在系统核心注册一个相应的窗口函数,窗口函数程序代码形式上是一个巨大的switch 语句,用以处理由消息循环发送到该窗口的消息,窗口函数由Windows 采用消息驱动的形式直接调用,而不是由应用程序显示调用的,窗口函数处理完消息后又将控制权返回给Windows。

原创粉丝点击