您的位置:首页 > 其它

第六章 菜单

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 );删除菜单项目
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: