第六章 菜单
2008-12-12 19:22
92 查看
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* GetSubMenu(int nPos)const 获得一个菜单的子菜单,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 );删除菜单项目
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* GetSubMenu(int nPos)const 获得一个菜单的子菜单,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 );删除菜单项目
相关文章推荐
- 第六章菜单
- VC++深入详解第六章——菜单编程
- 【css技术指南笔记】第六章 导航菜单
- PySide学习笔记第六章-菜单和工具栏
- 第六章 MMI 菜单资源
- 《VC++深入详解》学习笔记 第六章 菜单
- Windows编程基础 第六章 系统菜单 上下文相关菜单 图标 光标 字符串 菜单 加速键
- VC++深入详解读书笔记-第六章菜单
- Android入门(44)——第六章 使用OptionsMenu实现选项菜单
- Unix/Linux下的Curse库开发指南——第六章 菜单开发及应用(1)
- 菜单
- ExtJs定义树形菜单
- [039] 微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页)
- 【笔记】android滑动菜单
- TMainMenu 类[三] - 手动建立菜单(3) : 设定加速键
- 显示EAS标准单据自带kdtable(kdtEntry) 右键导出 excel菜单
- Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效
- 3DGIS第六章 北京奥林匹克公园三维场景网络发布应用
- AJAX示例应用-2(两级菜单的联动)-方式1(服务器以字符串形式返回子类别的id,name)
- jquery+div+css二级菜单