onupdate()
{
pCmUI?->Enable=false;
}
{
pCmUI?->Enable=false;
}
解决方案 »
- CTreeView如何利用ImageList当中的多个图标? 我发现总是显示一个啊
- 为什么 CoInitialize EnumWindows CoUninitialize 要连用?
- 关于EnableWindow使用,可能产生的问题疑惑
- 求救在工具条上添加编辑框出现的问题
- 请教_stdcall _cdecl 的用法
- 游戏外挂问题钩子,消息
- 在线求助!!!急需
- 请帮忙帮助一下,关于CTabCtrl控件的简单问题,UP有分,回答给分,解决问题重分。
- 请教高手一个难题:一个和ScrollView有关的问题(详情见内)
- CAsyncSocket(很一般的问题)
- ??? 请问中高手,怎样擦掉(清除)一个里面有位图的矩形区m_Rect?(位图也要擦掉)
- 要记住对话框的状态,怎么做?是写入文件还是写入注册表?
为何不能Disable菜单项
问:我有一个工具按钮在WM_COMMAND消息是这样做的:CMenu *pMenu = GetMenu();
pMenu->EnableMenuItem(ID_MY_OPTION,MF_BYCOMMAND|MF_DISABLED);但菜单并没有被Disable
答:缺省的习惯是当没有UpdateCmdUI句柄时程序是使能(Enable)菜单,这就是为什么菜单自动变成使能,只要关掉缺省值就可以了,把下面的代码加入你的程序
CMainFrm::CMainFrm
{
// Other stuff
this->m_bAutoMenuEnable = false;
}
摘自vckbase
这个我知道,可是你的那个hMenu 是怎么来的!
我用的是 loadMenu 或者是 GetMenu
然后 又用的是 GetSubMenu 去得到他的子菜单,都有返回值,可是一到EnableMenuItem
就失败 这是为什么啊!!!是不是 我那里做错了!!!
m_hPrintSetMenu = LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MAINFRAME));
m_hPrintSetSubMenu = GetSubMenu (m_hPrintSetMenu, 3);
res = EnableMenuItem(m_hPrintSetSubMenu,ID_SET_SPE_PRINTER,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);
//res 返回0;
LoadMenu会产生新的MenuHandle??可能吧,没研究过。
先 GetMenu 然后就是 EnableMenuItem
我也这样做 结果就不行! 我到底是错在那里了!!! m_hPrintSetSubMenu = ::GetMenu(m_hWnd);
res = EnableMenuItem(m_hPrintSetSubMenu,ID_SET_SPE_PRINTER,MF_GRAYED);m_hPrintSetSubMenu 有意义,可是 res就是 零了! 我真是搞不明白我那里不对了!!!
MainFram 里的 OnCreate 里面的!
问题是不是出在这里呢!》?????