- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序学习笔录201203-6
第六章 菜单
1.CMenuApp 类和 CMenuDOC 类都不是从 CWnd 类派生的,所以没有 MessageBox 成员函数,可以使用全局
MessageBox 函数,或使用应用程序框架的函数:
int AfxMessageBox ( LPCTSTR lpszText , UINT nType = MB_OK, UINT nIDHelp = 0); 注:后两个参数是默认值。
2.响应[Test]菜单项命令的顺序依次是:视类、文档类、框架类,最后才是应用程序类。
消息分类:()标准消息 (除 之外,所有以 开头的消息都是标准消息,从
3.Windows 1 WM_COMMAND WM_ CWnd
派生的类,都可接收这类消息。)()命令消息 (来自菜单、加速键或工具栏按钮的消息,以 形
2 WM_COMMAND
式呈现。在 中,通过菜单项的标识 ( )来区分不同的命令消息;在 中,通过消息的 参数识别。
MFC ID SDK wParam
从 派生的类,都可以接收到这类消息。)()通告消息 (由控件产生的消息,例如按钮的单击、列表
CCmdTarget 3
框的选择等,目的是为了向其父窗口 (通常是对话框)通知事件的发生。以WM_COMMAND 形式呈现的。从
CCmdTarget 派生的类都可以接收到这类消息。)
4.CWnd 类实际上派生于CCmdTarget 类,即凡是从CWnd 派生的类,他们既可以接收标准消息,也可以接收命令
消息和通告消息。从CCmdTarget 派生的类,只能接收命令消息和通告消息,不能接收标准消息。例如文档类
( )和应用程序类 ( )派生于 ,所以只能接收菜单命令和通告消息,不能接收标准
CMenuDoc CWinApp CCmdTarget
消息。
5.菜单命令消息响应函数的映射和标准消息的映射是一样的,只是命令消息使用的是ON_COMMAND 宏。
MFC 在后台把窗口过程函数替换成了AfxWndProc 函数,对所有消息进行处理。该函数内部调用AfxCallWndProc 函
数。后者又调用WindowProc 函数,这是CWnd 类的一个成员函数,处理所有类型的消息。WindowProc 函数调用
OnWndMsg 函数对到来的消息进行类型判断,如果是标准消息。。。如果是命令消息交由OnCommand 函数处理,
在这个函数中完成命令消息路由;如果是通告消息,那么交由OnNotify 函数处理,完成通告消息路由,二者都会
调用OnCmdMsg 函数。
6. 获得程序的菜单栏,也就是要在框架窗口中获得指向菜单栏的指针,可以通过CWnd 的成员函数:CMenu *
( ) ;来实现。该函数返回一个指向 类对象得指针, 类是一个 类,是
GetSubMenu int nPos const CMenu CMenu MFC
Windows 菜单句柄HMENU 的一个封装,提供了一些与菜单操作有关的成员函数,如菜单的创建、更新和销毁等,
还可以通过 ( ) ;获取一个菜单的子菜单。
CMenu* GetSubMenu int nPos const
设置标记菜单。使用 类的 ( , );第一个参数指定
7. CMenu UINT CheckMenuItem UINT nIDCheckItem UINT nCheck
需要处理的
文档评论(0)