📄 clspopmenu.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "clsPopMenu"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
Private mSelMenuString As String
Public Property Get SelMenuString() As String
SelMenuString = mSelMenuString
End Property
Public Function Popup(ParamArray Param()) As Integer
Dim iMenu As Long
Dim hMenu As Long
Dim hSubMenu As Long
Dim p As POINTAPI
Dim buffer As String * 255
hMenu = CreatePopupMenu()
For iMenu = 1 To 1 + UBound(Param)
Select Case Param(iMenu - 1)
Case ID_SEPARATOR
AppendMenu hMenu, MF_SEPARATOR, iMenu, ID_NULL
Case ID_HELP
hSubMenu = CreatePopupMenu()
AppendMenu hMenu, MF_POPUP, hSubMenu, CStr(Param(iMenu - 1))
AppendMenu hSubMenu, 0, TK_HELPTHEME, ID_HELPTHEME
AppendMenu hSubMenu, MF_SEPARATOR, 0, ID_NULL
AppendMenu hSubMenu, 0, TK_ABOUT, ID_ABOUT
DestroyMenu hSubMenu
Case Else
AppendMenu hMenu, 0, iMenu, CStr(Param(iMenu - 1))
End Select
Next iMenu
AppendMenu hMenu, MF_OWNERDRAW Or MF_DISABLED, 18, ID_NULL
ModifyMenu hMenu, 0, MF_OWNERDRAW Or MF_DISABLED Or MF_BYPOSITION, 0, vbNullString
ModifyMenu hMenu, 1, MF_MENUBREAK Or MF_BYPOSITION, GetMenuItemID(hMenu, 1), ID_SHOWWINDOW
If tkPower = 0 Then
ModifyMenu hMenu, 3, MF_DISABLED Or MF_GRAYED Or MF_BYPOSITION, 0, ID_ADMINADD
ModifyMenu hMenu, 4, MF_DISABLED Or MF_GRAYED Or MF_BYPOSITION, 0, ID_ADMINDELETE
ModifyMenu hMenu, 5, MF_DISABLED Or MF_GRAYED Or MF_BYPOSITION, 0, ID_ADMINMODIFY
End If
SetMenuDefaultItem hMenu, 1, MF_BYPOSITION
' ModifyMenu hMenu, 13, MF_OWNERDRAW Or MF_BYPOSITION, GetMenuItemID(hMenu, 13), ID_LEAVE
GetCursorPos p
iMenu = TrackPopupMenu(hMenu, TPM_RIGHTBUTTON + TPM_LEFTBUTTON + TPM_NONOTIFY + TPM_RETURNCMD, p.x, p.y, 0, GetForegroundWindow(), 0)
GetMenuString hMenu, iMenu - 1, buffer, Len(buffer), MF_BYPOSITION
mSelMenuString = Left(buffer, InStr(1, buffer, vbNullChar) - 1)
DestroyMenu hMenu
Popup = iMenu
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -