在CMainFrame 初始化时,把
bAutoMenuEnable =FALSE
bAutoMenuEnable =FALSE
解决方案 »
- 呼叫高手、斑竹、等,咨询下,EnumChildWindows是不是罗列顶层窗口下的所有子窗口,包括控件
- 急!mssql中的datetime类型究竟要怎么填??
- 属性页切换的时候改变菜单栏的问题 !!!请高手帮忙!!
- 合并资源
- 0x0a是哪一个字符的ascII?
- 对话框设置背景图片之后,,,static文本控件的文字下面一片灰色,,好难看,设置控件拥有透明背景也不行,,怎么解决??
- 怎么制作一个可以在word中插入的对象
- DLL全局钩子和外部进程之间通讯的问题。
- 关于双字节和单字节字符串的处理
- 要求高手解答
- 请问如何在程序中启动另外一个程序。
- NTDLL 是什么意思?PF_INET是什么通信域的表示?
CMenu::EnableMenuItem你就知道了,
// The code fragment below shows how to disable (and gray out) the
// File\New menu item.
// NOTE: m_bAutoMenuEnable is set to FALSE in the constructor of
// CMainFrame so no ON_UPDATE_COMMAND_UI or ON_COMMAND handlers are
// needed, and CMenu::EnableMenuItem() will work as expected.CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
的成员变量,
而CMainFrame是从CFrameWnd派生的。
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
this->m_bAutoMenuEnable = FALSE;
}
然后
void CMainFrame::OnMenuitem32773()
{
// TODO: Add your command handler code here
CMenu* pMenu = GetMenu();
int i = pMenu->GetMenuItemCount();
CMenu* pSubMenu = pMenu->GetSubMenu(4);
i = pSubMenu->GetMenuItemCount();
i = pSubMenu->EnableMenuItem(1,MF_BYPOSITION ¦ MF_GRAYED );
}
还是不能将自己添加的菜单变灰呀
2.CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND ¦ MF_DISABLED ¦ MF_GRAYED);
3.ok了give me scores
多谢
就卡在那个m_bAutoMenuEnable变量上了
0.
增加自己的菜单
1.CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
m_bAutoMenuEnable =FALSE;
}
2.
void CMainFrame::OnTest()
{
// TODO: Add your command handler code hereCMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(4);
submenu->EnableMenuItem(ID_TEST, MF_BYCOMMAND | MF_GRAYED);
}