右键弹出菜单如何应用activeskin呢?

解决方案 »

  1.   

    再问一下,如何使得activeskin只是作用于按钮,而不作用于form上的其他控件呢?
      

  2.   

    '用于控制右键菜单
    Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Public Declare Function GetMenu Lib "user32" (ByVal hWnd As Long) As Long
    Public Declare Function GetSubMenu Lib "user32" (ByVal hWnd As Long, ByVal nPos As Long) As LongPublic Type POINTAPI
        X As Long
        Y As Long
    End TypeDim Pos             As POINTAPI
    Dim hMenu           As Long
    Dim skinForm        As skinFormGetCursorPos Pos
    hMenu = GetMenu(Me.hWnd)
    hMenu = GetSubMenu(hMenu, 1)
    Set skinForm = Skn.GetSkinnedWindow(hWnd)
    skinForm.TrackPopupMenu hMenu, Pos.X, Pos.Y
      

  3.   

    弹出菜单当然可以在主菜单上设为不可见,我的做法就是这样。你注意这句hMenu = GetSubMenu(hMenu, 1)是否你设置的顺序不对?
      

  4.   

    对了,你可以这样做,设置一个菜单如mnuPopMain,将其Caption属性设为空,勾选中Visible属性,不要选中Enabled属性。然后在该菜单下加二级菜单,即你需弹出的菜单,勾选中Visible属性及Enabled属性。这样一定就可以了!