如何用API实现 “菜单a.enable = true”同样的功能

解决方案 »

  1.   

    ' API :
    Private Declare Function CheckMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDCheckItem As Long, ByVal wCheck As Long) As Long
    Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
    Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long' 常量:
    Const MF_BYPOSITION = &H400
    Const MF_BYCOMMAND = &H0      
    Const MF_ENABLED = &H0
    Const MF_GRAYED = &H1
    Const MF_DISABLED = &H2
    ' 用menu editor向窗体加入menu,再加入一个子menu' 函数:
    Function SetMenuItemEnable() Dim hMenuTop As Long 
            Dim hSubMenu As Long   hMenuTop = GetMenu(Me.hwnd) ' 得到主menu句柄
    hSubMenu = GetSubMenu(hMenuTop, 0)        ' 得到子menu句柄 ' GetMenuItemID用来得到menu的ID
            EnableMenuItem hSubMenu, GetMenuItemID(hSubMenu, 0), MF_DISABLED Or MF_GRAYEDEnd Function' 效果是把子menu给disable掉了,你可以根据需要自己设计并控制disable哪个。
      

  2.   

    小新同志,请到这里看个究竟
    http://community.csdn.net/Expert/topic/3198/3198711.xml?temp=.9193537