亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? modmenusxp.bas

?? 很好一套庫存管理
?? BAS
?? 第 1 頁 / 共 5 頁
字號:
Attribute VB_Name = "modMenus"
Option Explicit

'                              IMPORTANT
'======================================================================
' Set the following constant to TRUE if you need to debug your code]
' When set to False, stopping your code will crash VB
'======================================================================
Public Const bAmDebugging As Boolean = False
' =====================================================================
' Go to end of module (ReadMe) for details on how to use this module
' =====================================================================

' Types used to retrieve current menu item information
Public Type MenuDataInformation    ' information to store menu data
    ItemHeight As Integer       ' submenu item height
    ItemWidth As Long           ' pixel width of caption and hotkey
    Icon As Long                ' icon index
    HotKeyPos As Integer        ' instr position for hotkey
    Status As Byte              ' 2=Separator, 4=ForceTransparency 8=ForceNoTransparency
    Caption As String           ' Caption
    OriginalCaption As String   ' used to check for updated menu captions
    Parent As Long              ' submenu ID
    ID As Long                  ' menu item ID
End Type
Public Type PanelDataInformation
    Height As Long          ' height of the menu panel
    Width As Long           ' width of the menu panel
    HKeyPos As Long         ' left edge for all hot keys
    SideBar As Long         ' width of SideBar (default is 32)
    SideBarXY As Long       ' X,Y coords of image/text within sidebar
    PanelIcon As Long       ' does 1 or more menu items have an icon
    Status As Byte          ' icon or bitmap, 0 for text
    Caption As String       ' Text, unless image is used instead
    FColor As Long          ' Sidebar text fore color
    BColor As Long          ' Sidebar back color
    SBarIcon As Long        ' icon/bitmap ID for sidebar, Font ID for text
    ID As Long
End Type
Private Type MENUITEMINFO
     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 MEASUREITEMSTRUCT
     CtlType As Long
     CtlID As Long
     ItemId As Long
     ItemWidth As Long
     ItemHeight As Long
     ItemData As Long
End Type
Private Type DRAWITEMSTRUCT
     CtlType As Long
     CtlID As Long
     ItemId As Long
     itemAction As Long
     itemState As Long
     hwndItem As Long
     hDC As Long
     rcItem As RECT
     ItemData As Long
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 BITMAP
    bmType As Long
    bmWidth As Long
    bmHeight As Long
    bmWidthBytes As Long
    bmPlanes As Integer
    bmBitsPixel As Integer
    bmBits As Long
End Type
Private Type ICONINFO
    fIcon As Long
    xHotSpot As Long
    yHotSpot As Long
    hbmMask As Long
    hbmColor As Long
End Type

' APIs needed to retrieve menu information
Private Declare Function WindowFromDC Lib "user32" (ByVal hDC As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (LpVersionInformation As OSVERSIONINFO) As Long
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, lpcMenuItemInfo As MENUITEMINFO) As Long
Private Declare Function GetMenuItemInfo Lib "user32" Alias _
     "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal uItem As Long, _
     ByVal byPosition As Long, lpMenuItemInfo As MENUITEMINFO) As Boolean
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hDC As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias _
     "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)
Private Declare Function OffsetRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function GetIconInfo Lib "user32" (ByVal hIcon As Long, piconinfo As ICONINFO) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long
' Subclassing APIs & stuff
Public Declare Function CallWindowProc Lib "user32" Alias _
     "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
     ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, _
     ByVal lParam As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
     (ByVal hwnd As Long, ByVal nIndex As Long, _
     ByVal dwNewLong As Long) As Long
Private Declare Function SetGraphicsMode Lib "gdi32" (ByVal hDC As Long, ByVal iMode As Long) As Long
Private Declare Function IsZoomed Lib "user32" (ByVal hwnd As Long) As Long
' Subclassing & Windows Message Constants
Public Const GWL_WNDPROC = (-4)
Private Const WM_DRAWITEM = &H2B
Private Const WM_MEASUREITEM = &H2C
Private Const WM_INITMENU = &H116
Private Const WM_INITMENUPOPUP = &H117
Private Const WM_ENTERIDLE = &H121
Private Const WM_MDICREATE = &H220
Private Const WM_MDIACTIVATE = &H222
Private Const WM_ENTERMENULOOP = &H211
Private Const WM_EXITMENULOOP = &H212

Private Const GMEM_FIXED = &H0
Private Const GMEM_ZEROINIT = &H40
Private Const GPTR = (GMEM_FIXED Or GMEM_ZEROINIT)

' Menu Constants
Private Const MF_BYCOMMAND = &H0
Private Const MF_BYPOSITION = &H400
Private Const MF_OWNERDRAW = &H100
Private Const MF_SEPARATOR = &H800
Private Const MFT_SEPARATOR = MF_SEPARATOR
Private Const ODS_SELECTED = &H1
Private Const ODT_MENU = 1
Private Const MIIM_TYPE = &H10
Private Const MIIM_DATA = &H20
Private Const MIIM_SUBMENU = &H4

Private MenuData As Collection  ' Collection of clsMyMenu objects
Private ActiveHwnd As String    ' Index to focused form
Private iTabOffset As Integer   ' See DetermineOS function
Private lSubMenu As Long
Private lMDIchildClosed As Long
Private VisibleMenus As Collection

Public Sub SetMenus(Form_hWnd As Long, Optional MenuImageList As Control)
' =====================================================================
' This is the routine that will subclass form's menu & gather initial
' menu data
' =====================================================================
If bAmDebugging Then Exit Sub
' here we set the collection index & see if it's already been subclassed
Dim lMenus As Long, Looper As Integer
On Error Resume Next
If GetFormHandle(Form_hWnd) = -1 Then Exit Sub

lMenus = MenuData(CStr(Form_hWnd)).MainMenuID
If Err Then ' then new form to subclass
   ' Initialize a collection of classes if needed
   If MenuData Is Nothing Then Set MenuData = New Collection
   Dim NewMenuData As New clsMyMenu
   ' save the ImageList & Handle to the form's menu
   With NewMenuData
        .SetImageViewer MenuImageList
        .MainMenuID = GetMenu(Form_hWnd)
        ' used to redirect MDI children to parent for submenu info (see MsgProc:MDIactivate)
        .ParentForm = Form_hWnd
    End With
    ' Add the class to the class collection & remove the instance of the new class
    MenuData.Add NewMenuData, CStr(Form_hWnd)
    Set NewMenuData = Nothing
Else
    ' form is already subclassed, do nothing!
    Exit Sub
End If
Err.Clear
ActiveHwnd = CStr(Form_hWnd)    ' set collection index to current form
CleanMDIchildMenus
lMenus = GetMenuItemCount(MenuData(ActiveHwnd).MainMenuID)
For Looper = 0 To lMenus - 1
    'GetMenuMetrics GetSubMenu(MenuData(ActiveHwnd).MainMenuID, Looper)
Next
SetFreeWindow True              ' hook the window so we can intercept windows messages
End Sub

Public Sub ReleaseMenus(hwnd As Long)
' =====================================================================
' Sub prepares for Forms unloading
' This must be placed in the forms Unload event in order to
' release memory & prevent crash of program
' =====================================================================

If MenuData Is Nothing Then Exit Sub
On Error GoTo ByPassRelease
ActiveHwnd = CStr(hwnd)     ' set current index
SetFreeWindow False         ' unhook the window
On Error Resume Next
If MenuData(ActiveHwnd).ChildStatus = 1 Then
    lMDIchildClosed = MenuData(ActiveHwnd).ParentForm
End If
' remove references to that form's class & ultimately unload the class
MenuData.Remove ActiveHwnd
If MenuData.Count = 0 Then
    ' here we clean up a little when all subclassed forms have been unloaded
    Set MenuData = Nothing      ' erase the collection of classes which will unload the class
    DestroyMenuFont             ' get rid of memory font
    modDrawing.TargethDC = 0    ' get rid of refrence in that module
End If
ByPassRelease:
End Sub

Private Sub CleanMDIchildMenus()
' reset parent's menu items (see that routine for remarks)
If lMDIchildClosed = 0 Then Exit Sub
Dim Looper As Long, mMenu As Long, mII As MENUITEMINFO
mII.cbSize = Len(mII)
mII.fMask = &H1 Or &H2
mII.fType = 0
On Error Resume Next
With MenuData(CStr(lMDIchildClosed))
    For Looper = .PanelIDcount To 1 Step -1
        mMenu = .GetPanelID(Looper)
        If GetMenuItemCount(mMenu) < 0 Then .PurgeObsoleteMenus mMenu
    Next
End With
lMDIchildClosed = 0
End Sub

Public Function MsgProc(ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long

' =====================================================================
' Here we determine which messages will be processed, relayed or
' skipped. Basically, we send anything thru unless we are measuring
' or drawing an item.
' =====================================================================

On Error GoTo SendMessageAsIs
' the following is a tell-tale sign of a system menu
If lParam = &H10000 Then Err.Raise 5
ActiveHwnd = CStr(hwnd) ' ensure index to current form is set
Select Case wMsg
    Case WM_ENTERMENULOOP
        'Debug.Print "entering loop"
        ' When a menu is activated, no changes can be made to the captions, enabled status, etc
        ' So we will save each submenu as it is opened and read the info only once,
        ' this will prevent unnecessary reads each time the submenu is displayed

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久综合色一本| 成人免费的视频| 在线观看三级视频欧美| 中文字幕一区二区三区乱码在线 | 色婷婷综合在线| 国产精品久久毛片av大全日韩| 国产制服丝袜一区| 国产亚洲精品久| 不卡视频在线看| 亚洲精品亚洲人成人网在线播放| 91蜜桃网址入口| 亚洲综合精品自拍| 欧美福利视频导航| 久久99国产精品久久99| 久久综合九色综合97_久久久| 国产在线看一区| 欧美国产激情一区二区三区蜜月| 成人av在线播放网址| 亚洲精品水蜜桃| 欧美精品在线观看一区二区| 久久99热这里只有精品| 欧美高清在线一区二区| 91蝌蚪porny九色| 亚洲成人在线网站| 日韩免费性生活视频播放| 国产成人av影院| 亚洲摸摸操操av| 91精品国产综合久久久久久久久久| 久久精品理论片| 日韩毛片精品高清免费| 欧美日本乱大交xxxxx| 国产综合成人久久大片91| 中文字幕一区不卡| 91麻豆精品国产| 国产成人午夜高潮毛片| 亚洲午夜久久久久久久久电影网| 精品国产凹凸成av人网站| 不卡一二三区首页| 日本sm残虐另类| 国产精品五月天| 91精品国产综合久久福利| 成人黄色小视频| 日韩高清不卡一区二区| 国产精品对白交换视频 | 99久久99久久免费精品蜜臀| 亚洲午夜羞羞片| 国产精品情趣视频| 欧美丰满嫩嫩电影| av男人天堂一区| 韩日欧美一区二区三区| 亚洲一级二级三级在线免费观看| 久久影院视频免费| 欧美日韩精品一区二区三区四区| 国产黄人亚洲片| 日韩精品久久久久久| 亚洲六月丁香色婷婷综合久久| 精品久久久三级丝袜| 欧美午夜电影网| 99久久精品99国产精品| 国产乱码精品一区二区三区忘忧草 | 亚洲精品成a人| 久久九九久精品国产免费直播| 国产精品亚洲人在线观看| 污片在线观看一区二区| 亚洲精品少妇30p| 国产精品久久综合| 久久久久久久国产精品影院| 91精品国产手机| 欧美日韩一级片在线观看| 97久久精品人人爽人人爽蜜臀| 国产一区二区美女| 麻豆免费看一区二区三区| 香蕉av福利精品导航| 亚洲在线视频网站| 亚洲精品ww久久久久久p站| 国产精品久久久久影院老司| 久久精品一区二区三区av| 欧美成人video| 欧美电影免费观看高清完整版在线观看 | 激情综合五月天| 日韩不卡一区二区三区 | 99视频精品全部免费在线| 国产丶欧美丶日本不卡视频| 国产一区二区h| 精品一区二区三区免费| 激情文学综合丁香| 国产精品羞羞答答xxdd| 国产一区二区精品在线观看| 国产做a爰片久久毛片| 国产主播一区二区| 国产91精品久久久久久久网曝门| 国产一区中文字幕| 丁香网亚洲国际| bt欧美亚洲午夜电影天堂| 99久久精品免费精品国产| 色综合天天综合色综合av| 91论坛在线播放| 欧美视频一区二区三区| 欧美福利一区二区| 欧美成人伊人久久综合网| 久久久久久影视| 国产清纯在线一区二区www| 国产精品卡一卡二卡三| 亚洲黄色性网站| 午夜视频一区二区三区| 美女精品一区二区| 国产aⅴ综合色| 99久久婷婷国产精品综合| 在线免费不卡电影| 91精品国产高清一区二区三区蜜臀| 日韩美女主播在线视频一区二区三区| 日韩精品综合一本久道在线视频| xvideos.蜜桃一区二区| 国产精品日产欧美久久久久| 亚洲视频一区二区在线| 亚洲一区二区三区小说| 青青草97国产精品免费观看 | 久久精品国产亚洲高清剧情介绍| 国产九色sp调教91| 色综合夜色一区| 欧美丰满嫩嫩电影| 久久久国产午夜精品| 亚洲欧美另类小说| 亚洲18女电影在线观看| 国产精品自拍网站| 91一区在线观看| 日韩一区二区免费在线电影| 欧美国产综合色视频| 亚洲国产欧美一区二区三区丁香婷| 男人操女人的视频在线观看欧美| 国产精品一卡二卡在线观看| 91黄色激情网站| 2欧美一区二区三区在线观看视频| 中文字幕日韩一区二区| 日本不卡不码高清免费观看| 成人午夜在线视频| 777亚洲妇女| 1000部国产精品成人观看| 日本sm残虐另类| 色综合色综合色综合色综合色综合| 91精品国产aⅴ一区二区| 国产精品女主播av| 另类小说欧美激情| 欧美午夜精品一区二区三区| 日本一区二区三区电影| 免费成人小视频| 色噜噜偷拍精品综合在线| 国产欧美一区视频| 青青草原综合久久大伊人精品 | 国产欧美综合色| 青青草97国产精品免费观看| 色综合一区二区| 国产欧美一区二区三区在线看蜜臀| 视频一区中文字幕国产| 色偷偷成人一区二区三区91 | 欧美日韩另类一区| 中文字幕日韩av资源站| 国模娜娜一区二区三区| 国产片一区二区三区| 奇米888四色在线精品| 在线观看网站黄不卡| 国产精品高清亚洲| 粉嫩蜜臀av国产精品网站| 精品精品国产高清a毛片牛牛| 午夜一区二区三区在线观看| thepron国产精品| 国产女人18水真多18精品一级做| 理论片日本一区| 欧美精选在线播放| 亚洲第一激情av| 欧美伊人久久久久久久久影院| 18成人在线视频| 91女神在线视频| 国产精品久久久久三级| 成人久久久精品乱码一区二区三区| 久久嫩草精品久久久精品一| 免费av成人在线| 精品国产一区二区国模嫣然| 久久精品噜噜噜成人av农村| 日韩一区二区在线播放| 毛片不卡一区二区| 精品粉嫩超白一线天av| 狠狠色综合日日| 欧美激情一区二区三区不卡| 福利电影一区二区| 亚洲欧洲精品一区二区精品久久久 | 成人精品视频一区二区三区| 国产日韩欧美a| 成人久久18免费网站麻豆| 成人免费一区二区三区在线观看| 91啪亚洲精品| 亚洲国产另类av| 91精品免费观看| 久久av中文字幕片| 国产亚洲女人久久久久毛片| 成人激情视频网站| 亚洲影院免费观看| 日韩一区二区三区免费看 | 国产激情视频一区二区在线观看| 久久久亚洲精华液精华液精华液|