C++程序学习笔录201203-6.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

feixiang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档