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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cmenubar.cls

?? 一個很好的界面編程,,適合初學(xué)者學(xué)習(xí)和開發(fā)所用,內(nèi)容齊全.可做為畢業(yè)論文和課程設(shè)計所用.
?? CLS
?? 第 1 頁 / 共 3 頁
字號:
            Exit Function
         End If
      End If
   Next i
End Function
Private Function plAddToRestoreList(ByVal hMenu As Long, ByVal iMenu As Long, tMIIS As MENUITEMINFO_STRINGDATA) As Long
   
   ' Here we store information about a menu item.  When the
   ' menus are closed again we can reset things back to the
   ' way they were using this struct.

   m_iRestore = m_iRestore + 1
   ReDim Preserve m_hMenuRestore(1 To m_iRestore) As Long
   ReDim Preserve m_iMenuPosition(1 To m_iRestore) As Long
   ReDim Preserve m_tMIIS(1 To m_iRestore) As MENUITEMINFO_STRINGDATA
   ReDim Preserve m_sCaption(1 To m_iRestore) As String
   ReDim Preserve m_sShortCut(1 To m_iRestore) As String
   ReDim Preserve m_sAccelerator(1 To m_iRestore) As String
   ReDim Preserve m_lMenuTextSize(1 To m_iRestore) As Long
   ReDim Preserve m_lMenuShortCutSize(1 To m_iRestore) As Long
   pReplaceRestoreList m_iRestore, hMenu, iMenu, tMIIS
   plAddToRestoreList = m_iRestore

End Function
Private Sub pReplaceRestoreList(ByVal lIdx As Long, hMenu As Long, iMenu As Long, tMIIS As MENUITEMINFO_STRINGDATA)
Dim sCap As String
Dim sShortCut As String
Dim iPos As Long

   m_hMenuRestore(lIdx) = hMenu
   m_iMenuPosition(lIdx) = iMenu
   LSet m_tMIIS(lIdx) = tMIIS
   If tMIIS.cch > 0 Then
      sCap = left$(tMIIS.dwTypeData, tMIIS.cch)
   Else
      sCap = ""
   End If
   iPos = InStr(sCap, vbTab)
   If iPos > 0 Then
      m_sShortCut(lIdx) = Mid$(sCap, iPos + 1)
      m_sCaption(lIdx) = left$(sCap, iPos - 1)
   Else
      m_sCaption(lIdx) = sCap
      m_sShortCut(lIdx) = ""
   End If
   iPos = InStr(m_sCaption(lIdx), "&")
   If iPos > 0 And iPos < Len(m_sCaption(lIdx)) Then
      m_sAccelerator(lIdx) = UCase$(Mid$(m_sCaption(lIdx), iPos + 1, 1))
   End If
End Sub
Private Function InternalIDForWindowsID(ByVal wID As Long) As Long
Dim i As Long
   ' linear search I'm afraid, but it is only called once
   ' per menu item shown (when WM_MEASUREITEM is fired)
   For i = 1 To m_iRestore
      If m_tMIIS(i).wID = wID Then
         InternalIDForWindowsID = i
         Exit Function
      End If
   Next i
End Function
Friend Sub pRestoreList()
Dim i As Long
   'Debug.Print "RESTORELIST"
   ' erase the lot:
   For i = 1 To m_iRestore
      SetMenuItemInfoStr m_hMenuRestore(i), m_iMenuPosition(i), True, m_tMIIS(i)
   Next i
   m_iRestore = 0
   Erase m_hMenuRestore
   Erase m_iMenuPosition
   Erase m_tMIIS
   Erase m_sCaption()
   Erase m_sShortCut()
   Erase m_sAccelerator()
   m_iHaveSeenCount = 0
   Erase m_hMenuSeen()
End Sub

Private Sub Class_Initialize()
   Set m_cMemDC = New cMemDC
   Set m_fnt = New StdFont
   m_fnt.Name = "MS Sans Serif"
   Set m_fntSymbol = New StdFont
   m_fntSymbol.Name = "Marlett"
   m_fntSymbol.Size = m_fnt.Size * 1.2
End Sub

Private Sub Class_Terminate()
   Set m_cMemDC = Nothing
End Sub

Private Property Let ISubclass_MsgResponse(ByVal RHS As EMsgResponse)
   '
End Property

Private Property Get ISubclass_MsgResponse() As EMsgResponse
   ISubclass_MsgResponse = emrConsume
End Property

Private Function ISubclass_WindowProc(ByVal hwnd As Long, ByVal iMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim iMenu As Long
Dim iLastDownOn As Long
Dim iLastOver As Long
Dim lR As Long
Dim lFlag As Long
Dim hMenu As Long
Dim iChar As Long

   Select Case iMsg
   Case WM_LBUTTONDOWN
      ISubclass_WindowProc = CallOldWindowProc(hwnd, iMsg, wParam, lParam)
      ' If in range, then...
      iMenu = MenuHitTest()
      iLastDownOn = m_iDownOn
      m_iDownOn = iMenu
      If m_iDownOn <> iLastDownOn Then
         ' !Repaint!
         'Debug.Print "Repaint"
         SendMessageLong m_hWnd, WM_NCPAINT, 0, 0
      End If
      
      If m_iDownOn > 0 Then
         m_cTmr.Interval = 0
         lR = m_cToolbarMenu.TrackPopup(m_iDownOn)
         pRestoreList
      End If
      
   Case WM_MOUSEMOVE
      ISubclass_WindowProc = CallOldWindowProc(hwnd, iMsg, wParam, lParam)
      pMouseMove
      
   Case WM_MEASUREITEM
      ISubclass_WindowProc = MeasureItem(wParam, lParam)
   
   Case WM_DRAWITEM
      DrawItem wParam, lParam
      
   Case WM_MENUCHAR
      ' Check that this is my menu:
      lFlag = wParam \ &H10000
      If ((lFlag And MF_SYSMENU) <> MF_SYSMENU) Then
         hMenu = lParam
         iChar = (wParam And &HFFFF&)
         ' See if this corresponds to an accelerator on the menu:
         lR = ParseMenuChar(hMenu, iChar)
         If lR > 0 Then
            ISubclass_WindowProc = lR
            Exit Function
         End If
      End If
      ISubclass_WindowProc = CallOldWindowProc(m_hWnd, WM_MENUCHAR, wParam, lParam)
   
   End Select
   
End Function
Private Function ParseMenuChar( _
        ByVal hMenu As Long, _
        ByVal iChar As Integer _
    ) As Long
Dim sChar As String
Dim l As Long
Dim lH() As Long
Dim sItems() As String

   'Debug.Print "WM_MENUCHAR"
   sChar = UCase$(Chr$(iChar))
   For l = 1 To m_iRestore
      If (m_hMenuRestore(l) = hMenu) Then
         If (m_sAccelerator(l) = sChar) Then
            ParseMenuChar = &H20000 Or m_iMenuPosition(l)
            ' Debug.Print "Found Menu Char"
            Exit Function
         End If
      End If
   Next l

End Function

Private Function MeasureItem(ByVal wParam As Long, ByVal lParam As Long) As Long
Dim tMIS As MEASUREITEMSTRUCT
Dim lID As Long
   CopyMemory tMIS, ByVal lParam, LenB(tMIS)
   If tMIS.CtlType = ODT_MENU Then
                  
      ' because we don't get the popup menu handle
      ' in the tMIS structure, we have to do an internal
      ' lookup to find info about this menu item.
      ' poor implementation of MEASUREITEMSTRUCT - it
      ' should have a .hWndItem field like DRAWITEMSTRUCT
      ' - spm
      lID = InternalIDForWindowsID(tMIS.itemID)
            
      ' Width:
      tMIS.itemWidth = 4 + 22 + m_lMenuTextSize(lID) + 4
      If m_lMenuShortCutSize(lID) > 0 Then
         tMIS.itemWidth = tMIS.itemWidth + 4 + m_lMenuShortCutSize(lID) + 4
      End If
      
      ' Height:
      If lID > 0 And lID <= m_iRestore Then
         If (m_tMIIS(lID).fType And MFT_SEPARATOR) = MFT_SEPARATOR Then
            tMIS.itemHeight = 6
         Else
            ' menu item height is always the same
            tMIS.itemHeight = m_lMenuItemHeight + 8
         End If
      Else
         ' problem.
      End If
      
      CopyMemory ByVal lParam, tMIS, LenB(tMIS)
      
   Else
      MeasureItem = CallOldWindowProc(m_hWnd, WM_MEASUREITEM, wParam, lParam)
   End If
End Function
Private Function DrawItem(ByVal wParam As Long, ByVal lParam As Long) As Long
Dim tDIS As DRAWITEMSTRUCT
Dim hBr As Long
Dim tR As RECT, tTR As RECT, tWR As RECT
Dim lhDC As Long
Dim hFntOld As Long
Dim tMII As MENUITEMINFO
Dim bRadioCheck As Boolean, bDisabled As Boolean, bChecked As Boolean, bHighlighted As Boolean
Dim lID As Long
Dim hFntS As Long, hFntSOld As Long

   CopyMemory tDIS, ByVal lParam, LenB(tDIS)
   If tDIS.CtlType = ODT_MENU Then
      ' Todo
      ' tDIS.hWndItem is the menu containing the item, tDIS.itemID is the wID
      
      m_cMemDC.Width = tDIS.rcItem.right - tDIS.rcItem.left + 1
      m_cMemDC.Height = tDIS.rcItem.bottom - tDIS.rcItem.top + 1
      lhDC = m_cMemDC.hdc
      hFntOld = SelectObject(lhDC, hFont)
      
      LSet tR = tDIS.rcItem
      OffsetRect tR, -tR.left, -tR.top
      
      ' Fill background:
      tTR.right = m_cMemDC.Width
      tTR.bottom = m_cMemDC.Height
      hBr = CreateSolidBrush(TranslateColor(m_oMenuBackgroundColor))
      FillRect lhDC, tTR, hBr
      DeleteObject hBr
      
      SetBkMode lhDC, TRANSPARENT
      
      ' Draw the text:
      tMII.cbSize = LenB(tMII)
      tMII.fMask = MIIM_TYPE Or MIIM_STATE Or MIIM_DATA
      GetMenuItemInfo tDIS.hwndItem, tDIS.itemID, False, tMII
      
      If (tMII.fType And MFT_SEPARATOR) = MFT_SEPARATOR Then
         ' Separator:
         LSet tWR = tR
         tWR.top = (tWR.bottom - tWR.top - 2) \ 2 + tWR.top
         tWR.bottom = tWR.top + 2
         InflateRect tWR, -8, 0
         DrawEdge lhDC, tWR, BDR_SUNKENOUTER, BF_TOP Or BF_BOTTOM
      Else
         ' Text item:
         bRadioCheck = ((tMII.fType And MFT_RADIOCHECK) = MFT_RADIOCHECK)
         bDisabled = ((tMII.fState And MFS_DISABLED) = MFS_DISABLED)
         bChecked = ((tMII.fState And MFS_CHECKED) = MFS_CHECKED)
         bHighlighted = ((tMII.fState And MFS_HILITE) = MFS_HILITE)
         If bHighlighted Then
            SetTextColor lhDC, TranslateColor(m_oActiveMenuColorOver)
         Else
            SetTextColor lhDC, TranslateColor(m_oActiveMenuColor)
         End If
         
         ' Check:
         If bChecked Then
            LSet tWR = tR
            InflateRect tWR, -4, -4
            tWR.left = tWR.left + 2
            tWR.right = tWR.left + (tWR.bottom - tWR.top + 1)
            DrawEdge lhDC, tWR, BDR_SUNKENOUTER, BF_RECT
            
            SelectObject lhDC, hFntOld
            hFntSOld = SelectObject(lhDC, hFontSymbol)
            If bRadioCheck Then
               pDrawItem lhDC, "h", tWR, bDisabled, DT_CENTER Or DT_SINGLELINE Or DT_VCENTER
            Else
               pDrawItem lhDC, "b", tWR, bDisabled, DT_CENTER Or DT_SINGLELINE Or DT_VCENTER
            End If
            SelectObject lhDC, hFntSOld
            hFntOld = SelectObject(lhDC, hFont)
            
         End If
         
         ' Draw text:
         LSet tWR = tR
         tWR.left = 20 + 4
         lID = tMII.dwItemData
         If lID > 0 And lID <= m_iRestore Then
            pDrawItem lhDC, m_sCaption(lID), tWR, bDisabled, DT_LEFT Or DT_SINGLELINE Or DT_VCENTER
            If Len(m_sShortCut(lID)) > 0 Then
               tWR.left = tWR.left + m_lMenuTextSize(lID) + 4 + 4
               pDrawItem lhDC, m_sShortCut(lID), tWR, bDisabled, DT_LEFT Or DT_SINGLELINE Or DT_VCENTER
            End If
         End If
         
         ' Highlighted:
         If bHighlighted And Not (bDisabled) Then
            LSet tWR = tR
            InflateRect tWR, -2, 0
            DrawEdge lhDC, tWR, BDR_RAISEDINNER, BF_RECT
         End If
         
      End If
      
      SelectObject lhDC, hFntOld
      
      BitBlt tDIS.hdc, tDIS.rcItem.left, tDIS.rcItem.top, tDIS.rcItem.right - tDIS.rcItem.left + 1, tDIS.rcItem.bottom - tDIS.rcItem.top + 1, lhDC, 0, 0, vbSrcCopy
      
   Else
      DrawItem = CallOldWindowProc(m_hWnd, WM_DRAWITEM, wParam, lParam)
   End If
End Function
Private Sub pDrawItem( _
      ByVal lhDC As Long, _
      ByVal sText As String, _
      ByRef tR As RECT, _
      ByVal bDisabled As Boolean, _
      ByVal dtFlags As Long _
   )
Dim tWR As RECT
   LSet tWR = tR
   If bDisabled Then
      SetTextColor lhDC, TranslateColor(vb3DHighlight)
      OffsetRect tWR, 1, 1
      DrawText lhDC, sText, -1, tWR, dtFlags
      SetTextColor lhDC, TranslateColor(vbButtonShadow)
      OffsetRect tWR, -1, -1
      DrawText lhDC, sText, -1, tWR, dtFlags
   Else
      DrawText lhDC, sText, -1, tWR, dtFlags
   End If
End Sub
Private Sub pMouseMove()
Dim iMenu As Long
Dim iLastOver As Long
   iMenu = MenuHitTest()
   iLastOver = m_iOver
   m_iOver = iMenu
   'Debug.Print "Over:", m_iOver, iLastOver
   If m_iOver <> iLastOver Then
      ' !Repaint!
      'Debug.Print "Repaint"
      SendMessageLong m_hWnd, WM_NCPAINT, 0, 0
   End If
   If m_cTmr Is Nothing Then
      Set m_cTmr = New CTimer
   End If
   If m_iOver < 1 And m_iDownOn = 0 Then
      m_cTmr.Interval = 0
   Else
      If m_iDownOn > 0 Then
         If GetAsyncKeyState(vbLeftButton) = 0 Then
            m_iDownOn = 0
            SendMessageLong m_hWnd, WM_NCPAINT, 0, 0
         End If
      End If
      m_cTmr.Interval = 50
   End If
End Sub

Private Sub m_cTmr_ThatTime()
   pMouseMove
End Sub
' Convert Automation color to Windows color
Private Function TranslateColor(ByVal clr As OLE_COLOR, _
                        Optional hPal As Long = 0) As Long
    If OleTranslateColor(clr, hPal, TranslateColor) Then
        TranslateColor = CLR_INVALID
    End If
End Function



?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久成人黄色影片| 欧洲日韩一区二区三区| 欧美大片拔萝卜| 久久国内精品视频| 精品国产免费一区二区三区香蕉| 美国一区二区三区在线播放| 久久先锋影音av| 成人美女在线观看| 亚洲男同性视频| 欧美年轻男男videosbes| 久久精品国产色蜜蜜麻豆| 26uuu国产一区二区三区| aaa亚洲精品一二三区| 一区二区三区四区乱视频| 制服丝袜激情欧洲亚洲| 欧美一区午夜视频在线观看| 免费成人你懂的| 亚洲国产成人一区二区三区| 欧美色欧美亚洲另类二区| 精品一区二区三区av| 国产精品久久久一本精品 | 中文字幕一区不卡| 欧美中文字幕不卡| 精品一区二区三区免费| 亚洲免费在线视频一区 二区| 欧美人动与zoxxxx乱| 国产一区二区调教| 亚洲精品国产一区二区精华液| 欧美电影在哪看比较好| 高清不卡一二三区| 天堂一区二区在线| 综合久久久久久| 欧美电视剧在线观看完整版| 99在线精品视频| 日本亚洲天堂网| 最新国产成人在线观看| 欧美成va人片在线观看| 色综合久久中文综合久久牛| 韩国三级在线一区| www.欧美精品一二区| 亚洲va天堂va国产va久| 中文字幕欧美国产| 欧美一级在线免费| 色婷婷亚洲精品| 国产成人久久精品77777最新版本| 亚洲精品一二三| 久久久影视传媒| 欧美一区二区精品在线| 日本精品一级二级| 国产成人精品一区二| 美女视频黄 久久| 亚洲 欧美综合在线网络| 国产精品无码永久免费888| 欧美大黄免费观看| 4438x亚洲最大成人网| 91国产免费观看| 波多野结衣中文一区| 极品瑜伽女神91| 青青草97国产精品免费观看无弹窗版| 亚洲色图清纯唯美| 国产精品乱码人人做人人爱| 久久夜色精品一区| 日韩视频免费直播| 日韩一区二区免费高清| 欧美日韩国产片| 亚洲人亚洲人成电影网站色| 国产无一区二区| 久久伊99综合婷婷久久伊| 欧美大胆一级视频| 欧美一级片在线看| 91精品国产欧美日韩| 6080yy午夜一二三区久久| 欧美色窝79yyyycom| 欧美在线免费视屏| 欧美丝袜丝nylons| 欧美亚洲国产一区二区三区| 欧美在线免费观看视频| 欧美怡红院视频| 欧美日韩高清一区| 欧美一级黄色片| 欧美大片日本大片免费观看| 亚洲精品在线三区| 国产日产亚洲精品系列| 国产女人水真多18毛片18精品视频| 欧美精品一区二| 国产清纯白嫩初高生在线观看91| 久久亚洲免费视频| 欧美国产精品一区二区| 最新中文字幕一区二区三区| 亚洲欧洲av在线| 亚洲一区二区三区在线看| 天堂蜜桃一区二区三区| 欧美美女一区二区| 日韩一级高清毛片| 国产色爱av资源综合区| 国产精品看片你懂得| 玉米视频成人免费看| 无吗不卡中文字幕| 激情深爱一区二区| 99久精品国产| 91麻豆精品国产91久久久更新时间| 日韩欧美国产成人一区二区| 国产欧美一区二区精品性| 亚洲视频你懂的| 日本成人在线网站| 国产成人午夜电影网| 欧美在线观看一二区| 日韩一级大片在线观看| 国产精品久久久久永久免费观看 | 亚洲欧美另类久久久精品| 亚洲成人黄色小说| 国产精品888| 欧美影视一区在线| 久久久99精品免费观看| 国产精品久久久久久久久晋中| 亚洲一区av在线| 日韩午夜av电影| |精品福利一区二区三区| 日韩国产精品久久久| 粉嫩av一区二区三区| 欧美日韩精品二区第二页| 久久蜜桃av一区二区天堂| 一区二区三区四区在线| 极品少妇一区二区| 在线视频你懂得一区| 久久久99精品久久| 天天色天天操综合| 99久久精品免费看| 2023国产精华国产精品| 亚洲图片欧美视频| 懂色av一区二区夜夜嗨| 777午夜精品视频在线播放| 亚洲天堂成人在线观看| 韩国v欧美v亚洲v日本v| 欧美日韩一级片在线观看| 国产女主播一区| 久久精品国产第一区二区三区| 色综合久久中文字幕| 精品久久久久久综合日本欧美| 一区二区成人在线| 不卡的av在线| 久久这里都是精品| 免费的成人av| 欧美日韩国产在线观看| 一区二区三区**美女毛片| 成人高清伦理免费影院在线观看| 制服丝袜成人动漫| 亚洲高清视频的网址| 一本大道av一区二区在线播放| 久久精品免视看| 黑人巨大精品欧美黑白配亚洲| 777亚洲妇女| 香蕉久久一区二区不卡无毒影院 | 久久女同互慰一区二区三区| 天天色 色综合| 精品视频一区三区九区| 亚洲乱码国产乱码精品精可以看| 成人免费三级在线| 中文字幕精品综合| 国产精品一区二区视频| 久久久久久久综合狠狠综合| 久久精品久久综合| 日韩情涩欧美日韩视频| 日本伊人精品一区二区三区观看方式| 欧美少妇性性性| 亚洲第一主播视频| 在线成人高清不卡| 日韩成人一级片| 欧美一区二区久久久| 麻豆精品视频在线| 精品人在线二区三区| 韩国精品主播一区二区在线观看 | 一区二区三区不卡视频| 欧美亚日韩国产aⅴ精品中极品| 亚洲视频一区二区免费在线观看| www.av精品| 亚洲精品国产a久久久久久 | 亚洲国产成人高清精品| 欧美绝品在线观看成人午夜影视| 亚洲成人av福利| 制服丝袜亚洲播放| 国内精品伊人久久久久av一坑| 精品少妇一区二区三区| 国产一区二区三区av电影| 国产欧美日韩三区| 色悠悠久久综合| 日韩国产一二三区| 亚洲精品在线观看网站| 成人晚上爱看视频| 亚洲乱码中文字幕| 制服视频三区第一页精品| 狠狠网亚洲精品| 成人免费在线播放视频| 欧美性大战久久久久久久蜜臀| 日韩国产成人精品| 国产无人区一区二区三区| 色爱区综合激月婷婷| 日韩av在线免费观看不卡| 国产欧美一区二区三区鸳鸯浴| 在线观看亚洲一区|