MFC全接触(二)
上一次和MFC邂逅,我和她谈得很投机。分别的时候,她还依依不舍地对我说:“别忘了给我消息哦。”忙了一个月了,直到这几天,我才想起她告诉我的那句话。今天终于忍不住要给她发条消息了,但是我该怎么发呢?完了,她都没有告诉我怎么发呢?看来又得自己努力了。我们都知道Windows应用程序是消息驱动(Message-Driven)的。而我们在编写应用程序的时候也是建立起消息映射表,并通过实现消息响应函数去处理用户操作产生的事件消息。关于消息驱动,有一个基本的概念要明确的,就是应用程序并不能直接得到来自用户操作的信息,而这些信息则是被操作系统拦截并封装成MSG类,然后再将信息发往相应的应用程序。
既然要发消息,那么就得先了解一下MSG的结构了。在WINUSER.H中,我们找到了MSG的定义:
<div style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; width: 98%; padding-top: 4px;">http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedBlock.giftypedef struct tagMSG http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif HWND hwnd;
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif UINT message;
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif WPARAM wParam;
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif LPARAM lParam;
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif DWORD time;
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif POINT pt;
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif#ifdef _MAC
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif DWORD lPrivate;
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif#endif
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockEnd.gif} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
http://www.agoit.com/Images/OutliningIndicators/None.gif
页:
[1]