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

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

?? cmenubar.cls

?? 一個(gè)很好的界面編程,,適合初學(xué)者學(xué)習(xí)和開發(fā)所用,內(nèi)容齊全.可做為畢業(yè)論文和課程設(shè)計(jì)所用.
?? CLS
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
   hMenu = m_hMenu
End Property
Public Sub Attach(ByVal lhWnd As Long)
   LockWindowUpdate lhWnd
   Detach
   m_hWnd = lhWnd
   Set m_cToolbarMenu = New cToolbarMenu
   m_cToolbarMenu.CoolMenuAttach m_hWnd, Me
   AttachMessage Me, m_hWnd, WM_LBUTTONDOWN
   AttachMessage Me, m_hWnd, WM_MOUSEMOVE
   AttachMessage Me, m_hWnd, WM_DRAWITEM
   AttachMessage Me, m_hWnd, WM_MEASUREITEM
   AttachMessage Me, m_hWnd, WM_MENUCHAR
   LockWindowUpdate 0
End Sub
Public Sub Detach()
   If Not m_hWnd = 0 Then
      DetachMessage Me, m_hWnd, WM_LBUTTONDOWN
      DetachMessage Me, m_hWnd, WM_MOUSEMOVE
      DetachMessage Me, m_hWnd, WM_DRAWITEM
      DetachMessage Me, m_hWnd, WM_MEASUREITEM
      DetachMessage Me, m_hWnd, WM_MENUCHAR
   End If
   If Not m_cToolbarMenu Is Nothing Then
      m_cToolbarMenu.CoolMenuDetach
      Set m_cToolbarMenu = Nothing
   End If
End Sub
Public Property Let CaptionHeight(ByVal lHeight As Long)
   m_lCaptionHeight = lHeight
End Property

Public Sub Render( _
      ByVal hFnt As Long, _
      ByVal lhDC As Long, _
      ByVal lLeft As Long, _
      ByVal lTop As Long, _
      ByVal lWidth As Long, _
      ByVal lHeight As Long, _
      ByVal lYoffset As Long _
   )
Dim iIdx As Long
Dim lC As Long
Dim lhDCC As Long
Dim tMII As MENUITEMINFO_STRINGDATA
Dim sCap As String
Dim hFntOld As Long
Dim tTR As RECT, tBR As RECT
Dim lX As Long
Dim lR As Long
Dim bPress As Boolean
Dim lID As Long

   If Not (m_hMenu = 0) Then
      m_cMemDC.Width = lWidth
      m_cMemDC.Height = lHeight
      lhDCC = m_cMemDC.hdc

      hFntOld = SelectObject(lhDCC, hFnt)
      m_iCount = 0
      Erase m_tR

      lC = GetMenuItemCount(m_hMenu)
      If lC > 0 Then
         lX = 8
         lTop = lTop + 2
         BitBlt lhDCC, 0, 0, lWidth, lHeight, lhDC, lLeft, lTop, vbSrcCopy
         SetBkMode lhDCC, TRANSPARENT
         For iIdx = 0 To lC - 1
            lID = GetMenuItemID(m_hMenu, iIdx)
            If lID = -1 Then
               tMII.fMask = MIIM_TYPE
               tMII.cch = 127
               tMII.dwTypeData = String$(128, 0)
               tMII.cbSize = LenB(tMII)
               lR = GetMenuItemInfoStr(m_hMenu, iIdx, True, tMII)
               If (tMII.fType And MFT_STRING) = MFT_STRING Then
                  If tMII.cch > 0 Then
                     sCap = left$(tMII.dwTypeData, tMII.cch)
                  Else
                     sCap = ""
                  End If
                  tTR.top = 0
                  tTR.bottom = lHeight
                  tTR.left = 0: tTR.right = 0
                  DrawText lhDCC, sCap, -1, tTR, DT_CALCRECT
                  OffsetRect tTR, lX, 2
                  LSet tBR = tTR
                  InflateRect tBR, 2, 2
                  tBR.right = tBR.right + 7
                  m_iCount = m_iCount + 1
                  bPress = False
                  If m_iCount = m_iDownOn Then
                     ' This is the item that was clicked:
                     If m_iDownOn = m_iOver Then
                        ' Draw Pressed
                        'Debug.Print "DrawPressed"
                        bPress = True
                        SetTextColor lhDCC, TranslateColor(m_oActiveMenuColorOver)
                        DrawEdge lhDCC, tBR, BDR_SUNKENOUTER, BF_RECT
                     Else
                        ' Draw Raised
                        'Debug.Print "DrawRaised"
                        SetTextColor lhDCC, TranslateColor(m_oActiveMenuColorOver)
                        DrawEdge lhDCC, tBR, BDR_RAISEDINNER, BF_RECT
                     End If
                  Else
                     ' Not down on, may be over:
                     If m_iCount = m_iOver Then
                        ' Draw Raised
                        'Debug.Print "DrawRaised"
                        SetTextColor lhDCC, TranslateColor(m_oActiveMenuColorOver)
                        DrawEdge lhDCC, tBR, BDR_RAISEDINNER, BF_RECT
                     Else
                        ' Draw None
                        SetTextColor lhDCC, TranslateColor(m_oActiveMenuColor)
                     End If
                  End If
                  If bPress Then
                     OffsetRect tTR, 1, 1
                  End If
                  DrawText lhDCC, sCap, -1, tTR, DT_LEFT Or DT_SINGLELINE
                  If bPress Then
                     OffsetRect tTR, -1, -1
                  End If
                  ReDim Preserve m_tR(1 To m_iCount) As RECT
                  ReDim Preserve m_hSubMenu(1 To m_iCount) As Long
                  OffsetRect tBR, lLeft, lYoffset
                  LSet m_tR(m_iCount) = tBR
                  m_hSubMenu(m_iCount) = GetSubMenu(m_hMenu, iIdx)
                  lX = lX + tTR.right - tTR.left + 1 + 10
               End If
            End If
         Next iIdx

         BitBlt lhDC, lLeft, lTop, lWidth, lHeight, lhDCC, 0, 0, vbSrcCopy

      End If
   
      SelectObject lhDCC, hFntOld
   End If
End Sub
Friend Function AltKeyAccelerator(ByVal vKey As KeyCodeConstants) As Boolean
Dim lC As Long
Dim iIdx As Long
Dim tMII As MENUITEMINFO_STRINGDATA
Dim lR As Long
Dim sCap As String
Dim iPos As Long
Dim sAccel As String

   lC = GetMenuItemCount(m_hMenu)
   If lC > 0 Then
      For iIdx = 0 To lC - 1
         tMII.fMask = MIIM_TYPE Or MIIM_DATA
         tMII.cch = 127
         tMII.dwTypeData = String$(128, 0)
         tMII.cbSize = LenB(tMII)
         lR = GetMenuItemInfoStr(m_hMenu, iIdx, True, tMII)
         If tMII.cch > 0 Then
            sCap = left$(tMII.dwTypeData, tMII.cch)
            iPos = InStr(sCap, "&")
            If iPos > 0 And iPos < Len(sCap) Then
               sAccel = UCase$(Mid$(sCap, iPos + 1, 1))
               If sAccel = Chr$(vKey) Then
                  PressButton iIdx + 1, True
                  If Not m_cTmr Is Nothing Then
                     m_cTmr.Interval = 0
                  End If
                  lR = m_cToolbarMenu.TrackPopup(m_iDownOn)
                  pRestoreList
                  AltKeyAccelerator = True
               End If
            End If
         End If
      Next iIdx
   End If
End Function
Private Function MenuHitTest() As Long

   If m_iCount > 0 Then
      Dim tP As POINTAPI
      GetCursorPos tP
      MenuHitTest = HitTest(tP)
   End If
   
End Function
Friend Function HitTest(tP As POINTAPI) As Long

   ' Is tP within a top level menu button? tP
   ' is in screen coords
   '
Dim iMenu As Long

   ScreenToClient m_hWnd, tP
   For iMenu = 1 To m_iCount
      'Debug.Print m_tR(iMenu).left, m_tR(iMenu).top, m_tR(iMenu).right, m_tR(iMenu).bottom, tP.x, tP.y
      If PtInRect(m_tR(iMenu), tP.x, tP.y) <> 0 Then
         HitTest = iMenu
         Exit Function
      End If
   Next iMenu
End Function
Friend Property Get Count() As Long
   
   ' Number of top level menu items:?
   '
   Count = m_iCount
   
End Property
Friend Function GetMenuHandle(ByVal iNewPopup As Long) As Long
   
   ' Returns the popup menu handle for a given top level
   ' menu item (1 based index)
   '
   If iNewPopup > 0 And iNewPopup <= m_iCount Then
      GetMenuHandle = m_hSubMenu(iNewPopup)
   End If
End Function
Friend Sub PressButton(ByVal iButton As Long, ByVal bState As Boolean)
   '
   If bState Then
      m_iDownOn = iButton
   Else
      If m_iDownOn = iButton Then
         m_iDownOn = -1
      End If
   End If
   SendMessageLong m_hWnd, WM_NCPAINT, 0, 0
   
End Sub
Friend Sub GetRect(ByVal iButton As Long, ByRef tR As RECT)
Dim tRW As RECT
   If iButton > 0 And iButton <= m_iCount Then
      LSet tR = m_tR(iButton)
      GetWindowRect m_hWnd, tRW
      OffsetRect tR, tRW.left, tRW.top + m_lCaptionHeight
   End If
End Sub
Friend Property Get HotItem() As Long
   '
   HotItem = m_iDownOn
End Property
Friend Property Let HotItem(ByVal iHotItem As Long)
   ' Set the hotitem
   m_iOver = iHotItem
   ' Repaint:
   SendMessageLong m_hWnd, WM_NCPAINT, 0, 0
End Property

Friend Sub OwnerDrawMenu(ByVal hMenu As Long)
Dim lC As Long
Dim tMIIS As MENUITEMINFO_STRINGDATA
Dim tMII As MENUITEMINFO
Dim iMenu As Long
Dim sCap As String
Dim sShortCut As String
Dim tR As RECT
Dim iPos As Long
Dim lID As Long
Dim bHaveSeen As Boolean
Dim hFntOld As Long
Dim lMenuTextSize As Long
Dim lMenuShortCutSize As Long
Dim i As Long
                  
   ' Set OD flag on the fly...
   bHaveSeen = pbHaveSeen(hMenu)

   hFntOld = SelectObject(m_cMemDC.hdc, hFont)
   lC = GetMenuItemCount(hMenu)
   For iMenu = 0 To lC - 1
      
      If Not bHaveSeen Then
               
         tMIIS.fMask = MIIM_TYPE Or MIIM_DATA Or MIIM_ID
         tMIIS.cch = 127
         tMIIS.dwTypeData = String$(128, 0)
         tMIIS.cbSize = LenB(tMIIS)
         GetMenuItemInfoStr hMenu, iMenu, True, tMIIS
         'Debug.Print "New Item", tMIIS.dwTypeData
         
         lID = plAddToRestoreList(hMenu, iMenu, tMIIS)
      
         If Not (tMIIS.fType And MFT_OWNERDRAW) = MFT_OWNERDRAW Then
            ' Setting this flag causes tMIIS.dwTypeData to be
            ' overwritten with our own app-defined value:
            tMII.fType = tMIIS.fType Or MFT_OWNERDRAW
            tMII.dwItemData = lID
            tMII.cbSize = LenB(tMII)
            tMII.fMask = MIIM_TYPE Or MIIM_DATA
            SetMenuItemInfo hMenu, iMenu, True, tMII
         End If
      
      Else
         
         tMII.fMask = MIIM_TYPE Or MIIM_DATA
         tMII.cbSize = Len(tMII)
         GetMenuItemInfo hMenu, iMenu, True, tMII
         lID = tMII.dwItemData
         
         If Not ((tMII.fType And MFT_OWNERDRAW) = MFT_OWNERDRAW) Then
            
            lID = plReplaceIndex(hMenu, iMenu)
         
            'Debug.Print "VB has done something to it!", lID
            tMIIS.fMask = MIIM_TYPE Or MIIM_DATA Or MIIM_ID
            tMIIS.cch = 127
            tMIIS.dwTypeData = String$(128, 0)
            tMIIS.cbSize = LenB(tMIIS)
            GetMenuItemInfoStr hMenu, iMenu, True, tMIIS
            
            pReplaceRestoreList lID, hMenu, iMenu, tMIIS
            
            ' Setting this flag causes tMIIS.dwTypeData to be
            ' overwritten with our own app-defined value:
            tMII.fType = tMIIS.fType Or MFT_OWNERDRAW
            tMII.dwItemData = lID
            tMII.cbSize = LenB(tMII)
            tMII.fMask = MIIM_TYPE Or MIIM_DATA
            SetMenuItemInfo hMenu, iMenu, True, tMII
            
         End If
         
      End If
                              
      If lID > 0 And lID <= m_iRestore Then
         sCap = m_sCaption(lID)
         sShortCut = m_sShortCut(lID)
         
         'Debug.Print m_sCaption(lID), m_sShortCut(lID)
         
         DrawText m_cMemDC.hdc, sCap, -1, tR, DT_LEFT Or DT_SINGLELINE Or DT_CALCRECT
         If tR.right - tR.left + 1 > lMenuTextSize Then
            lMenuTextSize = tR.right - tR.left + 1
         End If
         If Len(sShortCut) > 0 Then
            DrawText m_cMemDC.hdc, sShortCut, -1, tR, DT_LEFT Or DT_SINGLELINE Or DT_CALCRECT
            If tR.right - tR.left + 1 > lMenuShortCutSize Then
               lMenuShortCutSize = tR.right - tR.left + 1
            End If
         End If
         m_lMenuItemHeight = tR.bottom - tR.top + 1
         
      Else
         'Debug.Print "ERROR! ERROR! ERROR!"
      End If
      
   Next iMenu
   
   For i = 1 To m_iRestore
      If m_hMenuRestore(i) = hMenu Then
         m_lMenuTextSize(i) = lMenuTextSize
         m_lMenuShortCutSize(i) = lMenuShortCutSize
      End If
   Next i
   
   SelectObject m_cMemDC.hdc, hFntOld
   
End Sub
Private Function pbHaveSeen(ByVal hMenu As Long) As Boolean
   
   ' When WM_INITMENUPOPUP fires, this may or not be
   ' a new menu.  We use an array to store which menus
   ' we've already worked on:

Dim i As Long
   
   For i = 1 To m_iHaveSeenCount
      If hMenu = m_hMenuSeen(i) Then
         pbHaveSeen = True
         Exit Function
      End If
   Next i
   m_iHaveSeenCount = m_iHaveSeenCount + 1
   ReDim Preserve m_hMenuSeen(1 To m_iHaveSeenCount) As Long
   m_hMenuSeen(m_iHaveSeenCount) = hMenu

End Function
Private Function plReplaceIndex(ByVal hMenu As Long, ByVal iMenu As Long)
Dim i As Long
   For i = 1 To m_iRestore
      If m_hMenuRestore(i) = hMenu Then
         If m_iMenuPosition(i) = iMenu Then
            plReplaceIndex = i

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产自产高清不卡| 国产成人综合在线播放| 久久免费的精品国产v∧| 色综合中文字幕| 激情亚洲综合在线| 亚洲一区自拍偷拍| 国产精品美女久久久久aⅴ国产馆| 555www色欧美视频| 在线观看免费亚洲| 92国产精品观看| 国产激情精品久久久第一区二区 | 国产成a人无v码亚洲福利| 亚洲一二三四区不卡| 国产精品麻豆99久久久久久| 日韩久久精品一区| 91精品婷婷国产综合久久竹菊| 91论坛在线播放| 成人爱爱电影网址| 国产乱人伦偷精品视频不卡| 美女视频黄频大全不卡视频在线播放 | 91成人在线精品| 成人精品免费看| 国产精品一区在线| 卡一卡二国产精品 | 国产999精品久久| 狠狠色综合日日| 裸体在线国模精品偷拍| 肉肉av福利一精品导航| 亚洲一区在线看| 亚洲精品美国一| 亚洲另类在线视频| 亚洲精品你懂的| 一区二区三区久久久| 亚洲视频在线观看三级| 亚洲丝袜另类动漫二区| 中文字幕在线视频一区| 国产精品网站在线播放| 国产日韩欧美不卡| 欧美国产日韩精品免费观看| 亚洲国产精品传媒在线观看| 国产欧美日韩在线看| 国产三级久久久| 国产精品午夜久久| |精品福利一区二区三区| 亚洲婷婷在线视频| 一区av在线播放| 午夜精品久久一牛影视| 天天操天天综合网| 蜜桃久久久久久| 国产一区二区三区四区五区美女| 国产乱理伦片在线观看夜一区| 精品在线免费观看| 丰满少妇久久久久久久| a在线欧美一区| 色婷婷av一区二区三区大白胸| 在线免费视频一区二区| 在线不卡的av| 久久综合五月天婷婷伊人| 国产欧美精品一区| 亚洲柠檬福利资源导航| 亚洲www啪成人一区二区麻豆| 日韩中文字幕亚洲一区二区va在线| 日本va欧美va精品发布| 国产乱码字幕精品高清av | 亚洲欧美二区三区| 五月激情丁香一区二区三区| 久久91精品国产91久久小草| 国产99一区视频免费| 在线一区二区三区| 日韩一级二级三级精品视频| 国产欧美视频在线观看| 一区二区三区在线免费播放| 天天综合色天天综合| 国产在线视视频有精品| 色综合久久久久网| 日韩天堂在线观看| 亚洲色图在线播放| 美女在线一区二区| 99这里只有精品| 日韩一区二区精品葵司在线| 国产精品欧美精品| 日韩国产一区二| 99视频精品免费视频| 欧美一二三四在线| 亚洲色图在线视频| 精品一区二区三区免费毛片爱| 97精品国产97久久久久久久久久久久 | 婷婷综合另类小说色区| 福利一区二区在线观看| 欧美精品777| 亚洲欧洲另类国产综合| 久久不见久久见免费视频1| 99视频热这里只有精品免费| 精品少妇一区二区三区| 一区二区三区精品久久久| 国产美女精品一区二区三区| 欧美日韩一区二区欧美激情| 国产精品国产三级国产| 激情欧美日韩一区二区| 欧美日韩另类国产亚洲欧美一级| 中文字幕第一区综合| 日韩精品一卡二卡三卡四卡无卡| 91最新地址在线播放| 久久久久久免费网| 日韩中文字幕亚洲一区二区va在线| hitomi一区二区三区精品| 欧美tk—视频vk| 婷婷开心久久网| 91精彩视频在线观看| 国产精品免费免费| 国产呦精品一区二区三区网站| 欧美精选在线播放| 亚洲电影在线免费观看| 91影院在线观看| 中文字幕av一区二区三区高| 九九九精品视频| 日韩一二在线观看| 欧美aaaaaa午夜精品| 在线视频一区二区免费| 中文字幕亚洲精品在线观看| 成人午夜视频福利| 国产性做久久久久久| 极品少妇xxxx偷拍精品少妇| 欧美一级欧美三级| 日本一道高清亚洲日美韩| 欧美日韩的一区二区| 亚洲国产色一区| 欧洲色大大久久| 亚洲一区二区三区中文字幕在线| 色先锋久久av资源部| 亚洲精品成人精品456| 色偷偷88欧美精品久久久| 亚洲人成在线观看一区二区| 99re热视频精品| 亚洲精品国产一区二区三区四区在线| 99久久久国产精品| 亚洲欧美色图小说| 91玉足脚交白嫩脚丫在线播放| 亚洲天堂网中文字| 在线亚洲一区观看| 午夜伊人狠狠久久| 91精品免费观看| 久久精品久久久精品美女| 欧美大片免费久久精品三p| 精品夜夜嗨av一区二区三区| 欧美videofree性高清杂交| 国产一区二区三区香蕉| 欧美国产乱子伦| 91香蕉国产在线观看软件| 一区二区激情视频| 欧美高清hd18日本| 久久国产尿小便嘘嘘尿| 久久久精品国产免费观看同学| 成人精品国产免费网站| 亚洲精品国久久99热| 欧美日韩黄色影视| 国内精品国产成人国产三级粉色| 久久精品一区二区三区av| 99久久久久免费精品国产| 午夜欧美视频在线观看| 日韩欧美在线综合网| 精品国产伦一区二区三区观看体验| 国内国产精品久久| 日韩美女视频19| 7777女厕盗摄久久久| 国产精品一品视频| 亚洲自拍偷拍图区| 精品国产欧美一区二区| 91在线播放网址| 日本vs亚洲vs韩国一区三区| 国产欧美一区二区三区沐欲 | 国产aⅴ精品一区二区三区色成熟| 17c精品麻豆一区二区免费| 欧美色综合影院| 激情五月激情综合网| 亚洲欧洲精品成人久久奇米网| 欧美性videosxxxxx| 国产九九视频一区二区三区| 有码一区二区三区| www欧美成人18+| 在线观看日韩高清av| 国产激情视频一区二区在线观看| 洋洋av久久久久久久一区| 久久综合视频网| 欧美丝袜丝交足nylons图片| 国产一区二区三区在线观看免费视频| 亚洲精品美腿丝袜| 国产日产欧美一区| 6080日韩午夜伦伦午夜伦| 波多野结衣精品在线| 麻豆91精品视频| 亚洲午夜成aⅴ人片| 亚洲国产精品成人久久综合一区| 69堂成人精品免费视频| 99久久99久久免费精品蜜臀| 久久成人免费网站| 婷婷中文字幕综合| 亚洲卡通动漫在线| 国产精品美女久久久久久久久 | 精品一区二区三区在线视频|