第六章 菜单

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"> rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_editdata.mso"> rel="themeData" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"> rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml">

l  菜单命令的响应顺序:视类,文档类,框架类,应用程序类。

l  AfxMessageBox函数:供不是从CWnd类派生出的类使用

l  Windows消息的分类:

标准消息:除WM_COMMAND之外,所有以WM_开头的消息。从CWnd类派生的类都可以接受这类消息。

命令消息:来自菜单、加速键或工具栏按钮的消息。这类消息以WM_COMMAND形式呈现,在MFC中通过菜单项的标识(ID)来区分不同的命令消息;在SDK中,通过消息的wParam参数识别。从CcmdTarget类派生的类都可以接收这类消息。

通告消息:由控件产生的消息,例如按钮的单击、列表框的选择等都会产生这类消息,目的是为了向其父窗口(通常是对话框)通知事件的发生。这类消息也是以WM_COMMAND形式呈现的。从CCmdTarget派生的类都可以接收到这类消息。

CWnd派生于CcmdTarget。文档类和程序类派生于CcmdTargetl.

l  菜单命令路由

l  菜单命令消息路由的具体过程:(P168

l  CMenu* GetMenu()const;获得只想菜单栏的指针

l  CMenu* GetSubMenuint nPosconst 获得一个菜单的子菜单,nPos子菜单索引号

l  UINT CheckMenuItem( UINT nIDCheckItem, UINT nCheck );为菜单项添加标记

l  BOOL SetDefaultItem( UINT uItem, BOOL fByPos = FALSE );设置子菜单的默认菜单项

l  分隔符在子菜单中占据索引位置

l  一个子菜单只能有一个默认菜单项。

l  BOOL SetMenuItemBitmaps( UINT nPosition, UINT nFlags, const CBitmap* pBmpUnchecked, const CBitmap* pBmpChecked );将指定位图与菜单项关联起来。

l  UINT EnableMenuItem( UINT nIDEnableItem, UINT nEnable );设置菜单项的状态

l  ON_UPDATE_COMMAND_UI

l  BOOL SetMenu( HMENU hMenu ); 装在菜单

l  MFC菜单命令更新机制(p184

菜单项的维护依赖于CN_UPDATE_COMMAND_UI消息。CCmdUI类。

l  菜单项与工具栏上某个按钮相关联,只要他们的ID设置为同一个标识就可以了。

l  BOOL TrackPopupMenu( UINT nFlags, int x, int y, CWnd* pWnd, LPCRECT lpRect = NULL );显示快捷菜单

l  BOOL AppendMenu( UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );把一个新菜单项添加到一个指定的菜单项目的末尾

l  BOOL InsertMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL ); 菜单项目之间插入一个新菜单项目

l  BOOL DeleteMenu( UINT nPosition, UINT nFlags );删除菜单项目

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值