⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modmenus.bas

📁 Address Book implemented in VB 6,can be use for storing person information
💻 BAS
📖 第 1 页 / 共 5 页
字号:
   ntmAveWidth As Long
End Type
Private Type MEASUREITEMSTRUCT  ' used when owner drawn items are first measured
     CtlType As Long
     CtlID As Long
     ItemID As Long
     ItemWidth As Long
     ItemHeight As Long
     ItemData As Long
End Type
Public Type MENUITEMINFO        ' used to retrieve/store menu items
     cbSize As Long
     fMask As Long
     fType As Long
     fState As Long
     wID As Long
     hSubMenu As Long
     hbmpChecked As Long
     hbmpUnchecked As Long
     dwItemData As Long
     dwTypeData As Long 'String
     cch As Long
End Type
Private Type NONCLIENTMETRICS     ' used to retrieve/set system settings
    cbSize As Long
    iBorderWidth As Long
    iScrollWidth As Long
    iScrollHeight As Long
    iCaptionWidth As Long
    iCaptionHeight As Long
    lfCaptionFont As LOGFONT
    iSMCaptionWidth As Long
    iSMCaptionHeight As Long
    lfSMCaptionFont As LOGFONT
    iMenuWidth As Long
    iMenuHeight As Long
    lfMenuFont As LOGFONT
    lfStatusFont As LOGFONT
    lfMessageFont As LOGFONT
End Type
Private Type OSVERSIONINFO          ' used to help identify operating system
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
End Type
Private Type SHFILEINFO                 ' used to extract icon for files list menus
    hIcon As Long
    iIcon As Long
    dwAttributes As Long
    szDisplayName As String * 255
    szTypeName As String * 80
End Type
Public Type MINMAXINFO
  ptReserved As POINTAPI
  ptMaxSize As POINTAPI
  ptMaxPosition As POINTAPI
  ptMinTrackSize As POINTAPI
  ptMaxTrackSize As POINTAPI
End Type
' =====================================================================
' Custom TYPE Declarations used
' =====================================================================
Public Type MenuComponentData
    Caption As String           ' original caption of a owner-drawn converted menu item
    Display As String           ' the caption to display (without hotkeys and codes)
    Cached As String            ' optional listbox type menu caption
    HotKey As String            ' the hotkey to display
    Tip As String               ' the tip to display
    Dimension As POINTAPI       ' height and width of the menu item
    OffsetCx As Integer         ' compensation of menu item width to force to appear standard across O/S's
    ID As Long                  ' the menu item unique ID
    Index As Integer            ' the menu item zero-based position on its submenu
    Icon As String              ' handle to an image to display for a menu item
    ShowBKG As Boolean          ' flag indicating to not make a bitmap menu image transparent (bitmaps only)
    ControlType As Byte         ' 0=combo box;1=list box;2=multiselect listbox
    hControl As Long            ' hWnd reference to a list/combo box if needed
    gControl As Long            ' same as above, but only referenced in child classes (see cMenuItems)
    Status As Integer           ' various attributes of a menu item. Currently, ...
                                '2=Separator,4=Disabled,8=Checked,16=Default,32=Raised Sep Bar,
                                '64=Sidebar,128=Sidebar Hidden,512=hasSubmenus
                                '1024=CustomMenu,2048=ColorMenu,4096=FontMenu,8192=Reserved
End Type
Public Type PanelData          ' each submenu gets a PanelData structure filled
    HasIcons As Boolean        ' indication panel has icons. Needed for checkmark styles
    IsSystem As Boolean        ' indication panel is for a system menu. Used to draw system menu icons
    PanelIcon As Long          ' handle to image to display as a sidebar
    SidebarMenuItem As Long    ' reference to menu item ID that is the sidebar
    SubmenuID As Long          ' reference to which submenu panel belongs to
    Hourglass As Boolean
    Accelerators As String
End Type
' =====================================================================
' Standard CONSTANTS as Constants or Enumerators
' =====================================================================
' //////////// Color constants. \\\\\\\\\\\\\\
Private Const COLOR_ACTIVEBORDER = 10
Private Const COLOR_ACTIVECAPTION = 2
Private Const COLOR_ADJ_MAX = 100
Private Const COLOR_ADJ_MIN = -100
Private Const COLOR_APPWORKSPACE = 12
Private Const COLOR_BACKGROUND = 1
Private Const COLOR_BTNFACE = 15
Private Const COLOR_BTNHIGHLIGHT = 20
Private Const COLOR_BTNLIGHT = 22
Private Const COLOR_BTNSHADOW = 16
Private Const COLOR_BTNTEXT = 18
Private Const COLOR_CAPTIONTEXT = 9
Private Const COLOR_GRAYTEXT = 17
Private Const COLOR_HIGHLIGHT = 13
Private Const COLOR_HIGHLIGHTTEXT = 14
Private Const COLOR_INACTIVEBORDER = 11
Private Const COLOR_INACTIVECAPTION = 3
Private Const COLOR_INACTIVECAPTIONTEXT = 19
Public Const COLOR_MENU = 4
Private Const COLOR_MENUTEXT = 7
Private Const COLOR_SCROLLBAR = 0
Private Const COLOR_WINDOW = 5
Private Const COLOR_WINDOWFRAME = 6
Private Const COLOR_WINDOWTEXT = 8
Public Const NEWTRANSPARENT = 3 'use with SetBkMode()
Private Const WHITENESS = &HFF0062
' //////////// Custom Colors \\\\\\\\\\\\\\\\\
Public Const vbMaroon = 128
Public Const vbOlive = 32896
Public Const vbNavy = 8388608
Public Const vbPurple = 8388736
Public Const vbTeal = 8421376
Public Const vbGray = 8421504
Public Const vbSilver = 12632256
Public Const vbViolet = 9445584
Public Const vbOrange = 42495
Public Const vbGold = 43724 '55295
Public Const vbIvory = 15794175
Public Const vbPeach = 12180223
Public Const vbTurquoise = 13749760
Public Const vbTan = 9221330
Public Const vbBrown = 17510
' //////////// DrawText API Constants \\\\\\\\\\\\\\
Public Const DT_CALCRECT = &H400
Public Const DT_CENTER = &H1
Public Const DT_HIDEPREFIX As Long = &H100000
Public Const DT_LEFT = &H0
Public Const DT_MULTILINE = (&H1)
Public Const DT_NOCLIP = &H100
Public Const DT_NOPREFIX = &H800
Public Const DT_RIGHT = &H2
Public Const DT_SINGLELINE = &H20
Public Const DT_VCENTER As Long = &H4
Public Const DT_WORDBREAK = &H10
' //////////// General Window messages or styles \\\\\\\\\\\\\\
Private Const WM_USER As Long = &H400
Private Const GW_CHILD = 5
Private Const GWL_WNDPROC = (-4)        ' current window procedure for hWnd
Public Const GWL_STYLE = -16            ' current window style for hWnd
Private Const GWL_EXSTYLE = -20         ' current extended window style for hWnd
Public Const GWL_ID = -12               ' current control ID for child window
Private Const TBN_FIRST = (-700&)
Private Const TBN_DROPDOWN = (TBN_FIRST - 10)
Private Const TB_SETSTYLE = (WM_USER + 56)
Private Const TBSTYLE_CUSTOMERASE = &H2000
Private Const TB_GETRECT = (WM_USER + 51)
Private Const WM_ACTIVATE As Long = &H6
Public Const WM_COMMAND As Long = &H111
Private Const WM_DESTROY = &H2
Private Const WM_DRAWITEM = &H2B
Private Const WM_ENTERIDLE = &H121
Private Const WM_ENTERMENULOOP = &H211
Private Const WM_EXITMENULOOP = &H212
Private Const WM_GETMINMAXINFO As Long = &H24&
Private Const WA_INACTIVE As Long = 0
Private Const WM_INITMENU = &H116
Private Const WM_INITMENUPOPUP = &H117
Private Const WM_MDIACTIVATE = &H222
Private Const WM_MDIDESTROY As Long = &H221
Private Const WM_MDIGETACTIVE As Long = &H229
Private Const WM_MDIMAXIMIZE As Long = &H225
Private Const WM_MEASUREITEM = &H2C
Private Const WM_MENUCHAR = &H120
Private Const WM_MENUCOMMAND As Long = &H126
Private Const WM_MENUSELECT As Long = &H11F
Private Const WM_SETFOCUS As Long = &H7
Private Const WS_EX_MDICHILD = &H40&
Private Const WM_KEYUP As Long = &H101
Private Const WM_KEYDOWN = &H100
Private Const WM_SYSKEYDOWN As Long = &H104
Private Const WM_SYSKEYUP As Long = &H105
' //////////// Menu-Related Constants \\\\\\\\\\\\\\
Public Const MF_CHANGE As Long = &H80&
Public Const MF_CHECKED As Long = &H8&
Public Const MF_DEFAULT As Long = &H1000&
Public Const MF_DISABLED As Long = &H2&
Public Const MF_GRAYED As Long = &H1&
Private Const MF_HILITE = &H80&
Public Const MF_MENUBARBREAK As Long = &H20&
Public Const MF_MENUBREAK As Long = &H40&
Private Const MF_MOUSESELECT = &H8000&
Public Const MF_OWNERDRAW = &H100
Public Const MF_POPUP As Long = &H10&
Public Const MF_SEPARATOR = &H800
Public Const MIIM_DATA = &H20
Public Const MIIM_ID As Long = &H2
Public Const MIIM_STATE As Long = &H1
Public Const MIIM_SUBMENU As Long = &H4
Public Const MIIM_TYPE = &H10
Private Const MNC_EXECUTE = 2
Private Const MNC_IGNORE = 0
Private Const MNC_SELECT = 3
Private Const ODA_DRAWENTIRE As Long = &H1
Private Const ODT_MENU = 1
Private Const ODS_SELECTED = &H1
Private Const TPM_RETURNCMD As Long = &H100&
Private Const TPM_NONOTIFY As Long = &H80&
Private Const TPM_LEFTALIGN = &H0&
Private Const TPM_VERTICAL = &H40&
Private Const TPM_LEFTBUTTON = &H0&
' System Menu items that will have their icons manually redrawn
Public Const SC_CLOSE = &HF060
Public Const SC_MINIMIZE = &HF020
Public Const SC_MAXIMIZE = &HF030
Public Const SC_RESTORE = &HF120
' Miscellaneous
Public Const RASTER_FONTTYPE As Long = &H1
Public Const TRUETYPE_FONTTYPE As Long = &H4
Private Const SPI_GETWORKAREA = 48
Private Const SHGFI_ICON = &H100
Private Const SHGFI_SMALLICON = &H1
Private Const SHGFI_USEFILEATTRIBUTES = &H10
Private Const VK_SHIFT As Long = &H10
Private Const VK_CONTROL As Long = &H11
Private Const VK_MENU As Long = &H12
' =====================================================================
' Custom CONSTANTS as Constants or Enumerators
' =====================================================================
' ////////////// Used to keep track of owner drawn menu item attributes \\\\\\\\\\\\\\
' Ref custom Type MenuComponentData above
Public Const lv_mSep As Integer = 2
Public Const lv_mDisabled As Integer = 4
Public Const lv_mChk As Integer = 8
Public Const lv_mDefault As Integer = 16
Public Const lv_mSepRaised As Integer = 32
Public Const lv_mSBar As Integer = 64
Public Const lv_mSBarHidden As Integer = 128
Public Const lv_mSubmenu As Integer = 512
Public Const lv_mCustom As Integer = 1024
Public Const lv_mColor As Integer = 2048
Public Const lv_mFont As Integer = 4096
' ////////////// Used for functions to format menu captions \\\\\\\\\\\\\\
Public Enum MenuImageType
    lv_ImgListIndex = 0
    lv_ImgHandle = 1
    lv_ImgControl = 2
End Enum
Public Enum MenuCtrlType
    lv_ListBox = 1
    lv_ComboBox = 2
End Enum
Public Enum MenuCaptionProps
    lv_Caption = 0
    lv_ImgID = 1
    lv_Bold = 2
    lv_Tip = 3
    lv_ListBoxID = 4
    lv_ComboxID = 5
    lv_ShowIconBkg = 6
    lv_HotKey = 7
    lv_FilesPath = 8
End Enum
Public Enum SidebarTextProps
    lv_txtText = 1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -