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

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

?? menuitem.cls

?? 星級酒店管理系統(tǒng)(附帶系統(tǒng)自寫控件源碼)
?? 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 = "MenuItem"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
Private picMenu As PictureBox
Private picCache As PictureBox
Private msCaption As String      ' 菜單標(biāo)題
Private mlIndex As Long          ' 菜單圖標(biāo)索引
Private picButton As Picture     ' 圖標(biāo)圖片
Private msCaptionX As Long
Private msCaptionY As Long
Private mlButtonHeight As Long
Private mbButtonDownOnMe As Boolean
Private msPictureURL As String
Private msKey As String
Private msTag As String

Private Type BUTTON_STRUCT
    RECT     As RECT
    State    As Long
    OnScreen As Boolean
End Type
Private mButtonStruct As BUTTON_STRUCT

Private mHitStruct As RECT
Private m3DStruct As RECT

#If USE_WING Then
    Private Declare Function WinGBitBlt Lib "wing32.dll" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long) As Long
#Else
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
#End If
Private Declare Function CreateRectRgnIndirect Lib "gdi32" (lpRect As RECT) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hMF As Long) As Long
Private Declare Function SelectClipRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long) As Long
Private Declare Function SaveDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function RestoreDC Lib "gdi32" (ByVal hdc As Long, ByVal SavedDC As Long) As Long

Const SRCCOPY = &HCC0020

Const ICON_SIZE = 32
Const MOUSE_UP = 1
Const MOUSE_DOWN = -1
Const MOUSE_MOVE = 0
Const RAISED = 1
Const SUNKEN = -1
Const NONE = 0
Const HITTEXT_EXTRA_PIXELS = 4
Const CLIPPING_NO = True
Const CLIPPING_YES = False

Public Property Get Caption() As String
    On Error Resume Next
    Caption = msCaption
End Property

Public Property Let Caption(ByVal sNewValue As String)
    On Error Resume Next
    msCaption = sNewValue
End Property

Public Property Get Index() As Long
    On Error Resume Next
    Index = mlIndex
End Property

Public Property Let Index(ByVal lNewValue As Long)
    On Error Resume Next
    mlIndex = lNewValue
End Property

Public Property Get Button() As Object
    On Error Resume Next
    Set Button = picButton
End Property

Public Property Set Button(ByVal vNewValue As Object)
    On Error Resume Next
    Set picButton = vNewValue
End Property

Public Property Get Left() As Long
    On Error Resume Next
    Left = mButtonStruct.RECT.Left
End Property

Public Property Let Left(ByVal lNewValue As Long)
    On Error Resume Next
    With mButtonStruct.RECT
        .Left = lNewValue
        .Right = lNewValue + ICON_SIZE
    End With
End Property

Public Property Get Top() As Long
    On Error Resume Next
    Top = mButtonStruct.RECT.Top
End Property

Public Property Let Top(ByVal lNewValue As Long)
    On Error Resume Next
    With mButtonStruct.RECT
        .Top = lNewValue
        .Bottom = lNewValue + ICON_SIZE
    End With
End Property

Public Property Get Right() As Long
    On Error Resume Next
    Right = mButtonStruct.RECT.Right
End Property

Public Property Get Bottom() As Long
    On Error Resume Next
    Bottom = mButtonStruct.RECT.Bottom
End Property

Public Property Get State() As Long
    On Error Resume Next
    State = mButtonStruct.State
End Property

Public Property Let State(ByVal lNewValue As Long)
    On Error Resume Next
    mButtonStruct.State = lNewValue
End Property

Public Property Get CaptionX() As Long
    On Error Resume Next
    CaptionX = msCaptionX
End Property

Public Property Let CaptionX(ByVal lNewValue As Long)
    On Error Resume Next
    msCaptionX = lNewValue
End Property

Public Property Get CaptionY() As Long
    On Error Resume Next
    CaptionY = msCaptionY
End Property

Public Property Let CaptionY(ByVal lNewValue As Long)
    On Error Resume Next
    msCaptionY = lNewValue
End Property

' 畫32*32圖標(biāo)
Public Function PaintButton(lTopMenuItemDisplayed, lIconStart As Long, lMenuCur As Long, lClipY As Long) As Boolean
    
    Dim lCenter As Long
    Dim lLeft As Long
    Dim lTop As Long
    Dim lRight As Long
    Dim lBottom As Long
    Dim lResult As Long
    Dim lHeight As Long
    Dim bClipping As Boolean
    Dim lPositionFromTop As Long
    Dim RgnRect As RECT
    Dim hRgn As Long
    Dim lRetCod As Long
    Dim hSavedDC As Long
    
    On Error Resume Next
    
    If mlIndex < lTopMenuItemDisplayed Then
        mButtonStruct.OnScreen = False
        PaintButton = CLIPPING_NO
        Exit Function
    End If
    
    ' 放置圖片
    lPositionFromTop = mlIndex - lTopMenuItemDisplayed + 1
    Top = (lPositionFromTop * 2 * ICON_SIZE) - ICON_SIZE + ((lPositionFromTop + 1 = 1) * 4) + (lMenuCur - 1) * mlButtonHeight
    With picMenu
        .ScaleMode = vbPixels
        lCenter = .ScaleWidth \ 2
        Left = lCenter - (ICON_SIZE \ 2)
    End With
    
    With mButtonStruct
        lLeft = .RECT.Left
        lTop = .RECT.Top
        lRight = .RECT.Right
        lBottom = .RECT.Bottom
    
        If lTop > lClipY Then
            .OnScreen = False
            PaintButton = CLIPPING_YES
            Exit Function
        End If
        If lBottom > lClipY Then
            bClipping = True
            lBottom = lClipY
        End If
        .OnScreen = True
    End With
    ' 菜單標(biāo)題定位
    CaptionX = lCenter - (CLng(picMenu.TextWidth(Caption())) \ 2)
    CaptionY = lTop + ICON_SIZE + 4

    With mHitStruct
        .Left = lLeft - HITTEXT_EXTRA_PIXELS - 2
        .Top = lTop - HITTEXT_EXTRA_PIXELS - 2
        .Right = lRight + HITTEXT_EXTRA_PIXELS + 2
        .Bottom = lBottom + picMenu.TextHeight(Caption()) + 5
        If bClipping Then
            .Bottom = lBottom
        End If
    End With
        
    ' 計算機(jī)3D結(jié)構(gòu)
    With m3DStruct
        .Left = lLeft - 2
        .Top = lTop - 2
        .Right = lRight + 2
        If Not bClipping Then
            .Bottom = lBottom + 2
        Else
            .Bottom = lBottom
        End If
    End With
    
    With mButtonStruct.RECT
        If Not bClipping Then
            lHeight = ICON_SIZE
        Else
            lHeight = lBottom - lTop
        End If
#If USE_WING Then
        lResult = WinGBitBlt(picMenu.hdc, .Left, _
            .Top, _
            ICON_SIZE, lHeight, _
            picCache.hdc, 0, mlButtonHeight * 2 + (lIconStart + lPositionFromTop) * ICON_SIZE)
#Else
        lResult = BitBlt(picMenu.hdc, .Left, _
            .Top, _
            ICON_SIZE, lHeight, _
            picCache.hdc, 0, mlButtonHeight * 2 + (lIconStart + lPositionFromTop) * ICON_SIZE, SRCCOPY)
#End If
    End With
    
    If Not bClipping Then
        With picMenu
            .CurrentX = msCaptionX
            .CurrentY = msCaptionY
            .ForeColor = vbWhite
            If .CurrentY + .TextHeight(msCaption) < lClipY Then
                picMenu.Print msCaption
                PaintButton = CLIPPING_NO
            Else
                With picMenu
                    RgnRect.Left = 0
                    RgnRect.Top = msCaptionY
                    RgnRect.Right = .Width
                    RgnRect.Bottom = lClipY
                    hSavedDC = SaveDC(.hdc)
                    hRgn = CreateRectRgnIndirect(RgnRect)
                    lRetCod = SelectClipRgn(.hdc, hRgn)
                    picMenu.Print msCaption
                    hRgn = DeleteObject(hRgn)
                    lRetCod = RestoreDC(.hdc, hSavedDC)
                    
                    PaintButton = CLIPPING_YES
                End With
            End If
        End With
    Else
        PaintButton = CLIPPING_YES
    End If
End Function

Public Property Set Parent(ByVal picNewValue As Control)
    On Error Resume Next
    Set picMenu = picNewValue
End Property

Public Function HitTest(ByVal iMousePosition As Integer, ByVal x As Long, ByVal y As Long) As Boolean
    
    If Not mButtonStruct.OnScreen Then
        Exit Function
    End If
    
    If PtInRect(mHitStruct, x, y) Then
        HitTest = True
        
        Select Case iMousePosition
            Case MOUSE_UP
                Select Case mButtonStruct.State
                    Case SUNKEN, NONE
                        DrawBorder RAISED
                    Case Else
                End Select
                mbButtonDownOnMe = False
            Case MOUSE_DOWN
                Select Case mButtonStruct.State
                    Case SUNKEN
                    Case Else
                        DrawBorder SUNKEN
                        mbButtonDownOnMe = True
                End Select
            Case MOUSE_MOVE
                Select Case mButtonStruct.State
                    Case RAISED
                    Case NONE
                        If Not mbButtonDownOnMe Then
                            DrawBorder RAISED
                        Else
                            DrawBorder SUNKEN
                        End If
                    Case SUNKEN
                End Select
        End Select
    Else
        HitTest = False
        
        If iMousePosition <> MOUSE_MOVE Then
            mbButtonDownOnMe = False
        End If
        If mButtonStruct.State <> NONE Then
            DrawBorder NONE
        End If
    End If
End Function

Public Sub DrawBorder(iDirection As Integer)
    On Error Resume Next
    picMenu.ScaleMode = vbPixels
       
    If Not mButtonStruct.OnScreen Then
        Exit Sub
    End If
    
    State = iDirection
    
    If m3DStruct.Bottom - m3DStruct.Top = ICON_SIZE + 4 Then
        Select Case iDirection
            Case RAISED
                DrawEdge picMenu.hdc, m3DStruct, BDR_RAISEDOUTER, BF_RECT
            Case SUNKEN
                DrawEdge picMenu.hdc, m3DStruct, BDR_SUNKENINNER, BF_RECT
            Case NONE
                With m3DStruct
                    picMenu.Line (.Left, .Top)-(.Right - 1, .Bottom - 1), BACKGROUND_COLOR, B
                End With
        End Select
    Else
        Select Case iDirection
            Case RAISED
                DrawEdge picMenu.hdc, m3DStruct, BDR_RAISEDOUTER, BF_LEFT Or BF_TOP Or BF_RIGHT
            Case SUNKEN
                DrawEdge picMenu.hdc, m3DStruct, BDR_SUNKENINNER, BF_LEFT Or BF_TOP Or BF_RIGHT
            Case NONE
                With m3DStruct
                    picMenu.Line (.Left, .Top)-(.Right - 1, .Top), BACKGROUND_COLOR
                    picMenu.Line (.Left, .Top)-(.Left, .Bottom), BACKGROUND_COLOR
                    picMenu.Line (.Right - 1, .Top)-(.Right - 1, .Bottom), BACKGROUND_COLOR
                End With
        End Select
    End If
End Sub

Public Property Set Cache(ByVal oNewValue As Object)
    On Error Resume Next
    Set picCache = oNewValue
End Property

Public Property Let ButtonHeight(ByVal lNewValue As Long)
    On Error Resume Next
    mlButtonHeight = lNewValue
End Property

Public Property Get PictureURL() As String
    On Error Resume Next
    PictureURL = msPictureURL
End Property

Public Property Let PictureURL(ByVal sNewValue As String)
    On Error Resume Next
    msPictureURL = PictureURL
End Property

Public Property Get Key() As String
    On Error Resume Next
    Key = msKey
End Property

Public Property Let Key(ByVal sNewValue As String)
    On Error Resume Next
    msKey = sNewValue
End Property

Public Property Get Tag() As String
    On Error Resume Next
    Tag = msTag
End Property

Public Property Let Tag(ByVal sNewValue As String)
    On Error Resume Next
    msTag = sNewValue
End Property

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲18女电影在线观看| 久久久一区二区| 久久99国产精品成人| 久久奇米777| 欧美日韩国产一级片| 成人av在线资源网| 精品制服美女久久| 亚洲一二三区不卡| 国产精品久久久久影院色老大 | 97久久精品人人爽人人爽蜜臀| 亚洲精品日韩专区silk| 久久久久综合网| 欧美中文字幕一区| 国产精品 日产精品 欧美精品| 午夜欧美一区二区三区在线播放| 中文字幕在线一区免费| 久久久精品免费免费| 日韩欧美激情在线| 欧洲精品中文字幕| av一本久道久久综合久久鬼色| 国产伦精品一区二区三区免费迷| 日韩精品成人一区二区在线| 亚洲免费观看高清在线观看| 久久人人超碰精品| 91精品麻豆日日躁夜夜躁| 一本一道综合狠狠老| 国产iv一区二区三区| 欧美a级一区二区| 亚洲精品视频一区| 亚洲视频一区在线观看| 久久久国产一区二区三区四区小说| 欧美午夜一区二区三区免费大片| 国产成人av电影在线播放| 看片网站欧美日韩| 亚洲国产成人91porn| 亚洲色图视频网| 久久久综合网站| 日韩美女天天操| 欧美精品777| 欧美三级日本三级少妇99| 色综合天天狠狠| a4yy欧美一区二区三区| 成人午夜视频福利| 国产suv一区二区三区88区| 国产成人一级电影| gogo大胆日本视频一区| 91免费在线视频观看| 91在线精品一区二区三区| fc2成人免费人成在线观看播放| 粗大黑人巨茎大战欧美成人| 99re8在线精品视频免费播放| 91视频观看视频| 欧美亚洲动漫另类| 91麻豆精品国产91| 精品国产电影一区二区| 久久老女人爱爱| 国产精品你懂的| 亚洲精品中文在线观看| 亚洲国产aⅴ成人精品无吗| 亚洲一区二区视频在线| 亚洲综合视频网| 亚洲va天堂va国产va久| 亚洲午夜视频在线观看| 一区二区高清免费观看影视大全| 亚洲精品综合在线| 亚洲一本大道在线| 麻豆精品视频在线观看视频| 久久99这里只有精品| 国产午夜精品福利| 国产精品久久久久久久久久免费看| 欧美大黄免费观看| 欧美xxxxxxxx| 国产三级欧美三级日产三级99| 久久综合久久鬼色中文字| 精品国产一二三| 欧美激情一区二区三区不卡| 亚洲视频一区在线| 亚洲国产美女搞黄色| 亚洲第一av色| 美美哒免费高清在线观看视频一区二区 | 五月天激情综合网| 亚洲va韩国va欧美va| 蜜臀av国产精品久久久久| 免费高清不卡av| 国产一区二区三区四区在线观看| 白白色亚洲国产精品| 国产永久精品大片wwwapp| av亚洲精华国产精华精华 | 国产精品一二三四| aaa国产一区| 555夜色666亚洲国产免| 久久综合色8888| 亚洲乱码国产乱码精品精小说 | 91麻豆免费视频| 日韩视频免费观看高清完整版| 中文字幕一区二区日韩精品绯色| 奇米综合一区二区三区精品视频| 91丝袜美腿高跟国产极品老师 | 亚洲欧洲精品一区二区精品久久久 | 欧美国产日韩亚洲一区| 日日夜夜一区二区| 成人小视频免费观看| 欧美一区二区三区人| 自拍偷拍亚洲欧美日韩| 黄网站免费久久| 在线播放中文字幕一区| 亚洲精品日日夜夜| 成人高清视频免费观看| 欧美zozo另类异族| 日韩专区欧美专区| 一本色道久久综合亚洲91| 久久精品一区蜜桃臀影院| 免费高清视频精品| 欧美日韩一区二区三区免费看 | 亚洲国产中文字幕在线视频综合 | 久久激情综合网| 欧美色视频在线观看| 亚洲精品亚洲人成人网在线播放| www.综合网.com| 国产女人aaa级久久久级| 久久97超碰国产精品超碰| 欧美人xxxx| 婷婷成人激情在线网| 色94色欧美sute亚洲线路一久 | 亚洲卡通动漫在线| 不卡一卡二卡三乱码免费网站| 久久亚洲一区二区三区明星换脸| 久久成人18免费观看| 日韩欧美中文字幕精品| 石原莉奈在线亚洲二区| 欧美二区三区91| 午夜日韩在线电影| 欧美久久久久久久久中文字幕| 在线电影院国产精品| 亚洲一级电影视频| 欧美色图一区二区三区| 亚洲一区二三区| 欧美日韩免费在线视频| 亚洲国产精品久久久久婷婷884| 欧美亚洲综合久久| 亚洲一区二区三区中文字幕在线| 在线观看av一区| 日韩和欧美的一区| 日韩欧美123| 国产精品一级片| 国产精品嫩草影院av蜜臀| 99久久精品国产一区二区三区 | 9191成人精品久久| 日本中文字幕一区| 精品国产123| 成人性生交大片免费看中文网站| 亚洲国产经典视频| 色综合久久88色综合天天免费| 亚洲成人7777| 精品精品国产高清a毛片牛牛| 国产精品一级黄| 亚洲欧美日韩一区二区三区在线观看| 欧美性生活大片视频| 日韩高清欧美激情| 久久视频一区二区| 成人高清在线视频| 亚洲大片精品永久免费| 欧美成人精品二区三区99精品| 国产成人在线视频网站| 亚洲日本一区二区| 欧美日本免费一区二区三区| 激情综合色丁香一区二区| 久久免费电影网| 欧日韩精品视频| 狠狠色丁香久久婷婷综| 国产精品精品国产色婷婷| 欧美色图一区二区三区| 狠狠色狠狠色综合系列| 亚洲欧美日韩成人高清在线一区| 在线电影国产精品| 国产成人av电影在线播放| 亚洲成人精品影院| 国产日韩精品一区二区三区| 91久久精品国产91性色tv| 美女脱光内衣内裤视频久久网站 | 日韩电影免费在线看| 亚洲国产精品二十页| 欧美日本视频在线| 成人免费的视频| 美女精品一区二区| 亚洲精品老司机| 久久久久国产免费免费| 欧美日韩激情一区二区三区| 国产盗摄精品一区二区三区在线 | 欧美一区二区三区在线观看 | 精品国产一区二区国模嫣然| 色一情一乱一乱一91av| 韩国一区二区在线观看| 亚洲美腿欧美偷拍| 国产偷国产偷亚洲高清人白洁| 欧美日韩在线播放三区四区| 国产91精品免费| 久久国产视频网| 香蕉久久一区二区不卡无毒影院 | 成人精品视频一区二区三区尤物|