基于对话框的应用程序程序,UPDATE_COMMAND_UI就是起作用。
解决的方法是:
HMENU hmenu=::GetMenu(this->m_hWnd);
HMENU hs=::GetSubMenu(hmenu,0/*某个位置,0是第一子菜单*/);
::EnableMenuItem(hs,IDM_XXXXX,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);//无效 ::EnableMenuItem(hs,IDM_YYYYY,MF_BYCOMMAND|MF_ENABLED);//有效
解决的方法是:
HMENU hmenu=::GetMenu(this->m_hWnd);
HMENU hs=::GetSubMenu(hmenu,0/*某个位置,0是第一子菜单*/);
::EnableMenuItem(hs,IDM_XXXXX,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);//无效 ::EnableMenuItem(hs,IDM_YYYYY,MF_BYCOMMAND|MF_ENABLED);//有效
解决方案 »
- 如何模拟鼠标 按住不放进行拖动的操作
- 如何在Activex中提供重载函数?
- FutureStudio(未来工作室)
- 求救!我的图太大,一运行就死机!还有曲线怎么画?
- 我想用DrawFocusRect来消除BUTTON上的焦点虚线,但是不知道怎么取得这个Rect结构
- 高分----请教高手一个入门级的问题(200分)
- 用cpu时钟做报时器
- 如何添加一个字符串到Dll文件字符串资源中
- 已知字符串指针和它的长度,如何把这个字符串截取出来?
- 求救:VC的程序 如何实现中英文手动切换
- 关于RichEdit控件的UpdateData(TRUE)的问题
- 打劫啦!!! 谁有关于SOCKET编程的详细教程,快交出来!!!!(推荐几本书也行)
解决的方法是:
HMENU hmenu=::GetMenu(this->m_hWnd);//主菜单
HMENU hs=::GetSubMenu(hmenu,0/*某个位置,0是第一子菜单,其余类推*/);
::EnableMenuItem(hs,IDM_XXXXX,MF_BYCOMMAND¦MF_DISABLED¦MF_GRAYED);//使无效
::EnableMenuItem(hs,IDM_YYYYY,MF_BYCOMMAND¦MF_ENABLED);//使有效
解决的方法是:
HMENU hmenu=::GetMenu(this->m_hWnd);//主菜单
HMENU hs=::GetSubMenu(hmenu,0/*某个位置,0是第一子菜单,其余类推*/);
::EnableMenuItem(hs,IDM_XXXXX,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);//使无效
::EnableMenuItem(hs,IDM_YYYYY,MF_BYCOMMAND|MF_ENABLED);//使有效
上面的¦是逻辑或的HTML特殊码
该怎么处理?谢谢!!!
pcmenu->TrackPopupMenu(...);或TrackPopupMenu..(hmenu,...);
这里pcmenu是CMenu类的一个对象指针,hmenu是HMENU 型的变量
然后就在这行代码后面或前面(你自己试一下,看哪个有效)加上
::EnableMenuItem(pcmenu->m_hMenu,IDM_XXXXX,MF_BYCOMMAND¦MF_DISABLED¦MF_GRAYED);
//使无效
或
::EnableMenuItem(hmenu,IDM_XXXXX,MF_BYCOMMAND¦MF_DISABLED¦MF_GRAYED);//使无效
不好意思,我喜欢直接使用WIN32 API,不太喜欢MFC