我想把右键点击驱动器时,系统默认的右键菜单中的“格式化”项disable掉。
我用的是Icontextmenu接口,在其中QuaryContextMenu中用
::EnableMenuItem(hMenu,30755,MF_DISABLED|MF_GRAYED);
::EnableMenuItem(hMenu,45,MF_DISABLED|MF_GRAYED);
就可以成功的把2000 Professional下,资源管理器中右边用户区的格式化菜单(用spy++读出id值是30755)和左边树状菜单中的格式化菜单(用spy++读出id值是45)。
但是我发现这个方法很局限,因为如果换了操作系统,如xp,用spy++读出的菜单的id值就变了,而且左边树状菜单的id值还是每次不一样的(直接用光盘装的xp和用ghost装的xp左树菜单的id值不一样)。 现在的问题就是如何才能解决这个不同os的问题。我的想法是找出这些id值的define定义吧,就好像“关闭”的定义是ID_FILE_CLOSE。但是未果。或者有什么其它解决方法的。
那位高手知道如何解决这个难题的,它困扰了我好久了!不胜感激!
我用的是Icontextmenu接口,在其中QuaryContextMenu中用
::EnableMenuItem(hMenu,30755,MF_DISABLED|MF_GRAYED);
::EnableMenuItem(hMenu,45,MF_DISABLED|MF_GRAYED);
就可以成功的把2000 Professional下,资源管理器中右边用户区的格式化菜单(用spy++读出id值是30755)和左边树状菜单中的格式化菜单(用spy++读出id值是45)。
但是我发现这个方法很局限,因为如果换了操作系统,如xp,用spy++读出的菜单的id值就变了,而且左边树状菜单的id值还是每次不一样的(直接用光盘装的xp和用ghost装的xp左树菜单的id值不一样)。 现在的问题就是如何才能解决这个不同os的问题。我的想法是找出这些id值的define定义吧,就好像“关闭”的定义是ID_FILE_CLOSE。但是未果。或者有什么其它解决方法的。
那位高手知道如何解决这个难题的,它困扰了我好久了!不胜感激!
解决方案 »
- “const char [24]”转换为“const WCHAR *”出错怎么解决?
- 关于用GDI+ 画图,引起的画面闪烁
- 谁能告诉我CFILE类是不是在CVIEW中声明并实现;
- 什么字体,字符 0 , 1, . , x的宽度相同?
- 求OPENGL SUPERBIBLE源码!
- 急:菜鸟的问题: socket中的 IPPROTO_IP是什么意思??::在线等待::
- 一个困扰我很久的问题:双击某类型的文件(含自定义后缀如.abc等),如何自动使用相关联的程序打开之?
- 羽毛球爱好者,请进
- 在一个头文件中使用#include "aaa.h"与使用class Caaa;有什么区别?
- 怎样才能算入门?
- 毕业一年,也工作了一年,散分!
- 有没有用于开发MFC ActiveX的VC辅助工具或插件?
UINT uIDItem,
LPTSTR lpString,
int nMaxCount,
UINT uFlag
);遍历各个MenuItem,然后判断它的文本是否是格式化,是的话就进行处理啦,不是的话pass!
在xp下,indexmenu=0,idcmdfirst=31030,idcmdlast=31226,而我要找的格式化,右边用户区是31012,左边树状里是45,
而在GetMenuString里一定要有uIDItem才能找到string的,我应该如何做呀。