如何禁用word 菜单中的某一菜单项?在线等! 大家好,我想在获取word菜单栏句柄后,利用该句柄找到 文件->另存为,并把"另存为"置为灰色,请问该怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Pls use the EnableMenuItem API:This function enables or disables (grays) the specified menu item. BOOL EnableMenuItem( HMENU hMenu, UINT uIDEnableItem, UINT uEnable ); 谢谢,这种方式我已经试过,不行,我的代码: if (lstrcmpi(lpStrName,TEXT("WINWORD.EXE")) == 0){ g_hWnd = GetForegroundWindow(); hmenu = ::GetMenu(g_hWnd); hsubmenu = ::GetSubMenu(hmenu,0); EnableMenuItem(hsubmenu,GetMenuItemID(hsubmenu,3),MF_GRAYED); }结果word程序的全部菜单全变成了透明的,根本不是我想要的哪一个菜单项变灰,由此可见,word菜单不是一个普通的菜单,请以前处理过此类问题的高手们指点一下! 比较难.一个想法,LZ可以试试.1)取得菜单窗口的句柄,它是MsoCommandBar类型的,用CMenu的方法控制不了,只能当成普通窗口来处理.2)取得句柄后,通过EnumChildWindows枚举它所有的子窗口.看看子窗口都是什么类型的,一个个的排查,或都通过EnableWindow(FALSE)之类的方法控制. 谢谢duyanbin_sy提供的方法,这确实不是一个很简单的问题,先试一下吧:) 关于vs2005无法导入lib库问题 读取txt文本显示在LISTBOX里面,每行末尾总有个|竖杠符号 请教switch的问题 C++类成员函数如何调用外部重名函数? 键盘钩子问题,用于删除一个打开的进程 谁知道SetMapMode用法啊 top - 郁闷,散分! 如何保存一棵树??为什么我的树遍力之后总有重复的内容呢?? dialog上的菜单,怎么实现再状态条上的提示功能? 钩子 关于mfc中使用静态指针的问题
HMENU hMenu,
UINT uIDEnableItem,
UINT uEnable
);
if (lstrcmpi(lpStrName,TEXT("WINWORD.EXE")) == 0){
g_hWnd = GetForegroundWindow();
hmenu = ::GetMenu(g_hWnd); hsubmenu = ::GetSubMenu(hmenu,0); EnableMenuItem(hsubmenu,GetMenuItemID(hsubmenu,3),MF_GRAYED);
}
结果word程序的全部菜单全变成了透明的,根本不是我想要的哪一个菜单项变灰,由此可见,word菜单不是一个普通的菜单,
请以前处理过此类问题的高手们指点一下!
一个想法,LZ可以试试.
1)取得菜单窗口的句柄,它是MsoCommandBar类型的,用CMenu的方法控制不了,只能当成普通窗口来处理.
2)取得句柄后,通过EnumChildWindows枚举它所有的子窗口.看看子窗口都是什么类型的,一个个的排查,或都通过EnableWindow(FALSE)之类的方法控制.