大家好,我想在获取word菜单栏句柄后,利用该句柄找到 文件->另存为,并把"另存为"置为灰色,请问该怎么做?

解决方案 »

  1.   

    Pls use the EnableMenuItem API:This function enables or disables (grays) the specified menu item. BOOL EnableMenuItem(
      HMENU hMenu, 
      UINT uIDEnableItem, 
      UINT uEnable 
    ); 
      

  2.   

    谢谢,这种方式我已经试过,不行,我的代码:
     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菜单不是一个普通的菜单,
    请以前处理过此类问题的高手们指点一下!
      

  3.   

    比较难.
    一个想法,LZ可以试试.
    1)取得菜单窗口的句柄,它是MsoCommandBar类型的,用CMenu的方法控制不了,只能当成普通窗口来处理.
    2)取得句柄后,通过EnumChildWindows枚举它所有的子窗口.看看子窗口都是什么类型的,一个个的排查,或都通过EnableWindow(FALSE)之类的方法控制.
      

  4.   

    谢谢duyanbin_sy提供的方法,这确实不是一个很简单的问题,先试一下吧:)