菜单
来源:互联网 发布:知乎 唯一住房 编辑:程序博客网 时间:2024/04/28 16:15
1
菜单消息传递顺序:View类CDoc类 CMainFrame类
2
CMenuDoc和CMenuApp都不能接收标准消息
当点击一个菜单项的时候,最先接受到菜单项消息的是CMainFrame框架类,CMainFrame框架类将会把菜单项消息交给它的子窗口View类,由View类首先进行处理;如果View类检测到没对该菜单项消息做响应,则View类把菜单项消息交由文档类Doc类进行处理;如果Doc类检测到Doc类中也没对该菜单项消息做响应,则Doc类又把该菜单项消息交还给View类,由View类再交还给CMainFrame类处理。
3
GetMenu
函数功能:该函数取得分配给指定窗口的菜单的句柄。
函数原型:HMENU GetMenu(HWND hWnd);
4
MFC类成员函数
CMenu::GetSubMenu
CMenu* GetSubMenu( int nPos ) const;
返回值:若弹出菜单位于指定的位置,则返回CMenu 对象的指针,其中CMenu对象要包含弹出菜单的句柄;否则为NULL。
如果CMenu 对象不存在,那么将创建临时的CMenu 对象。但返回的CMenu指针不应被存储。
nPos :指定包含在菜单中的弹出菜单的位置。对于第一个菜单项,位置值开始为0。弹出菜单的标识符不能被该函数使用。
5
CheckMenuItem
函数原型:DWORD CheckMenuItem(HMENU hmenu, UINT uIDCheckItem, UINT uCheck);
函数功能:该函数取得与指定菜单项相联系的菜单标志。如果该菜单项打开了一个子菜单,该函数也返回子菜单里的菜单项数。
hmenu:含有其菜单项的标志将被提取得的菜单的句柄。
uIDCheckItem:制定要修改的菜单项。
uCheck:表示标记的状态。此参数可取下列值之一:
MF_BYCOMMAND:表示参数uId给出菜单项的标识符。如果MF_BYCOMMAND 和MF_BYPOSITION都没被指定,则MF_BYCOMMAND是缺省值。
MF_BYPOSITION:表示参数uId给出菜单项相对于零的位置。
如果是MF_BYPOSITION,那么就是用索引值来作为第一个参数
如果是MF_BYCOMMAND,那么就是以标示作为第一个参数
用法如下
GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED);
GetMenu()->GetSubMenu(0)->CheckMenuItem(ID_FILE_NEW,MF_BYCOMMAND | MF_CHECKED);
6
SetDefaultItem
例子
GetMenu()->GetSubMenu(0)->SetDefaultItem(5,TRUE);//打印粗体字
7
SetMenu(NULL)
//取消掉菜单栏
menu.LoadMenu(IDR_xxx);
SetMenu(&Menu);
//加载一个菜单栏
8
添加右键弹出
void CMenuView::OnRButtonDown(UINT nFlags, CPoint point)
{
}
9
BOOL EnableMenuItem(HMENU hMenu,UINT uIDEnableItem, UINT uEnable);
允许或禁止指定的菜单条目
例子
GetMenu()->GetSubMenu(0)->EnableMenu(1,MF_BYPOSITION|MF_DISABLE|MF_GRAYED)
10
函数原型:BOOL AppendMenu(hMenu hMenu,UINT uFlags,UINT uIDNewltem,LPCTSTR lpNewltem);
函数功能:该函数在指定的菜单条、下拉式菜单、子菜单或快捷菜单的末尾追加一个新菜单项。此函数可指定菜单项的内容、外观和性能。
参数:
hMenu:将被修改的菜单条、下拉式菜单、子菜单、或快捷菜单的句柄。
UFlags:控制新菜单项的外观和性能的标志。此参数可以是备注里所列值的组合。 UIDNewltem:指定新菜单项的标识符,或者当uFlags设置为MF_POPUP时,表示下拉式菜单或子菜单的句柄。
LpNewltem:指定新菜单项的内容。
11
CreatePopupMenu
HMENU CreatePopupMenu(VOID)
函数功能:该函数创建一个下拉式菜单、子菜单或快捷菜单。此菜单最初是空的,但可用函数InsertMenultem来插入或追加菜单项。也可用函数InsertMenu来插人菜单项,用AppendMenu来追加菜单项。
12
函数原型:BOOL DrawMenuBar(HWND hWnd);
函数功能:该函数重画指定菜单的菜单条。如果系统创建窗口以后菜单条被修改,则必须调用此函数来画修改了的菜单条。
在CView类的话要通过
hWnd:其菜单条需要被重画的窗口的句柄。
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- MFC
- 学习面向对象编程的简单途径
- 二维指针内存的申请和释放(simple,naive ?)
- ssh整合配置(struts2.2.1+ hibernate3.6+spring3.0.5)
- 部分 Do not Know How make ******的原因
- 菜单
- wampserver xampp下PHP使用PDO 支持postgresql
- build 生成sys时.c 或者.cpp 文件路径问题
- 菜单
- 关于java的null
- python3 写的代理服务器验证工具
- Tomcat5报错:-source 1.3 中不支持泛型
- 最近学的很迷茫
- 逆境是成长的契机