您的位置:首页 > 其它

MFC的消息映射与命令传递

2009-10-08 00:29 274 查看
MFC把消息分为三大类:
一、命令消息(WM_COMMAND):命令消息意味着“使用者命令程序做某些操作”。凡由UI对象产生的消息都是这种命令消息,可能来自菜单或加速键或工具按钮,并且都以WM_COMMAND呈现。SDK程序主要靠消息的wParam识别之,MFC程序则主要靠菜单项的识别码(menu ID)识别之——两者其实是相同的。
什么样的类有资格接受命令消息?凡派生自CCmdTarget的类,皆有资格。从command target的字面意义可知,这是命令消息的目的地。也就是说,凡派生自CCmdTarget者,它的骨子里就有了一种特殊的机制。把整张MFC类层次图摊开来看,几乎建立应用程序的最重要的几个类都派生自CCmdTarget,剩下的不能接受消息的,是像CFile、CAchive、CPoint、CDao(数据库)、Collection Classes(纯粹数据处理)、GDI等等“非主流”类。
二、标准消息:除WM_COMMAND之外,任何WM_开头的都算是这一类。任何派生自CWnd子类,均可接收此消息。
三、Control Notification:这种消息有控件产生,为的是向其父窗口(通常是对话框)通知某种情况。例如你在ListBox上选择其中一个项目,ListBox就会产生LBN_SELCHANGE传递给父窗口。这类消息也是以WM_COMMAND形式呈现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: