MFC之Menu

// ID命名
// 菜单资源号以“IDM_”开始;光标资源ID号以“IDC_”开始;而图标资源ID号以“IDI_”开始。

//加载自定义菜单,在CMainFrame类的OnCreate()方法中加上
//由于menu是局部变量,存储内容会被销毁,所以SetMenu()之后,在其他调用
//会报错,用Detach()把控制权从HWIND分离出来交给Windos
CMenu menu;
menu.LoadMenu(IDR_MYMENU);
this->SetMenu(&menu);
menu.Detach();

//在单文档工程中,MFC AppWizard生成的4个类都可以响应同一个菜单的WM_COMMAND消息。如果在
//这4个类里都加了同一个菜单的响应函数,则4个响应函数将只有一个被执行,它们之间有一个优先顺序
//View->Document->MainFrame->App。

//在框架窗口中获得指向菜单栏的指针,通过CWnd的成员函数GetMenu()来实现
CMenu* GetMenu() const;
//获取子菜单
CMenu* GetSubMenu(int nPos) const;

//为菜单命令添加一个标记,在OnCreate()函数中设置
UINT CMenu::CheekMenuItem(UINT nIDCheckItem, UINT nCheck);

//在菜单命令前面添加图形效果,使用CMenu类的SetMenuItemBitmaps()函数
GetMenu()->GetSubMenu(0)->CheckMenuItem(0, MF_BYPOSITION|MF_CHECKED);
GetMenu()->GetSubMenu(0)->SetDefaultItem(ID_FILE_OPEN, FALSE);
m_bitmap.LoadBitmap(IDB_BITMAP1);
GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0, MF_BYPOSITON, &m_bitmap, &m_bitmap);

//获取图形标记菜单上显示的位图的尺寸
int GetSystemMetrics(int nIndex);

//禁用菜单命令
//在CMainFrame()函数中
m_bAutoMenuEnable = FALSE;
//在OnCreate()函数中
EnableMenuItem(1, MF_BYPOSTION|MF_DISABLED|MF_GRAYED)

/*
如果一个新的菜单命令没有命令处理函数,应用程序会自动禁用它。
要启用这样的菜单命令,只要求用Event Handler Appwizard为该菜单命令添加
一个命令处理函数。要根据条件有选择的启用和禁用一个菜单命令,可以用
Event Handler Appwizard添加一个界面消息处理函数:
1.添加命令处理UPDATE_COMMAND_UI。
2.添加处理代码到新函数
void CWzdView::OnUpdateWzdButton(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bWzd);
}
*/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值