mdlHover.bas
上传用户:hx800c
上传日期:2020-12-02
资源大小:792k
文件大小:7k
源码类别:

编辑框

开发平台:

Visual Basic

  1. Attribute VB_Name = "mdlHover"
  2. Public Const LOGPIXELSY = 90        '  Logical pixels/inch in Y
  3. Public Const LF_FACESIZE = 32
  4. Public Const DT_BOTTOM = &H8
  5. Public Const DT_CENTER = &H1
  6. Public Const DT_LEFT = &H0
  7. Public Const DT_RIGHT = &H2
  8. Public Const DT_TOP = &H0
  9. Public Const DT_VCENTER = &H4
  10. Public Const DT_SINGLELINE = &H20
  11. Public Const DT_WORDBREAK = &H10
  12. Public Const DT_CALCRECT = &H400
  13. Public Const DT_END_ELLIPSIS = &H8000
  14. Public Const DT_MODIFYSTRING = &H10000
  15. Public Const DT_WORD_ELLIPSIS = &H40000
  16. Public Const COLOR_BTNHIGHLIGHT = 20
  17. Public Const COLOR_BTNSHADOW = 16
  18. Public Const COLOR_BTNFACE = 15
  19. Public Const COLOR_HIGHLIGHT = 13
  20. Public Const COLOR_ACTIVEBORDER = 10
  21. Public Const COLOR_WINDOWFRAME = 6
  22. Public Const COLOR_3DDKSHADOW = 21
  23. Public Const COLOR_3DLIGHT = 22
  24. Public Const COLOR_INFOTEXT = 23
  25. Public Const COLOR_INFOBK = 24
  26. Public Const PATCOPY = &HF00021 ' (DWORD) dest = pattern
  27. Public Const SRCCOPY = &HCC0020 ' (DWORD) dest = source
  28. Public Const PS_SOLID = 0
  29. Public Const PS_DASHDOT = 3                 '  _._._._
  30. Public Const PS_DASHDOTDOT = 4              '  _.._.._
  31. Public Const PS_DOT = 2                     '  .......
  32. Public Const PS_DASH = 1                    '  -------
  33. Public Const PS_ENDCAP_FLAT = &H200
  34. Public Type LOGFONT
  35.         lfHeight As Long
  36.         lfWidth As Long
  37.         lfEscapement As Long
  38.         lfOrientation As Long
  39.         lfWeight As Long
  40.         lfItalic As Byte
  41.         lfUnderline As Byte
  42.         lfStrikeOut As Byte
  43.         lfCharSet As Byte
  44.         lfOutPrecision As Byte
  45.         lfClipPrecision As Byte
  46.         lfQuality As Byte
  47.         lfPitchAndFamily As Byte
  48.         lfFaceName(1 To LF_FACESIZE) As Byte
  49. End Type
  50.  Public Type RECT
  51.          Left As Long
  52.          Top As Long
  53.         Right As Long
  54.          Bottom As Long
  55.  End Type
  56.   Public Type POINTAPI
  57.           x As Long
  58.           y As Long
  59.   End Type
  60. Public Type LOGPEN
  61.         lopnStyle As Long
  62.         lopnWidth As POINTAPI
  63.         lopnColor As Long
  64. End Type
  65. Public Declare Function SelectClipRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long) As Long
  66. Public Declare Function SelectClipPath Lib "gdi32" (ByVal hdc As Long, ByVal iMode As Long) As Long
  67. Public Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
  68. Public Declare Function CreateRectRgnIndirect Lib "gdi32" (lpRect As RECT) As Long
  69. Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
  70. Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
  71. Public Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
  72. Public Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
  73. Public Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
  74. Public Declare Function GetCapture Lib "user32" () As Long
  75. Public Declare Function ReleaseCapture Lib "user32" () As Long
  76. Public Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
  77. Public Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
  78. Public Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
  79. Public Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
  80. Public Declare Function SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
  81. Public Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
  82. Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
  83. Public Declare Function CreatePenIndirect Lib "gdi32" (lpLogPen As LOGPEN) As Long
  84. Public Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
  85. Public Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
  86. Public Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As Long) As Long
  87. Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  88. Public Declare Function InflateRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long
  89. Public Declare Function DrawFocusRect Lib "user32" (ByVal hdc As Long, lpRect As RECT) As Long
  90. Public Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
  91. Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
  92. Public 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
  93. Public Declare Function PatBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal dwRop As Long) As Long
  94. Public Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
  95. Public Declare Function GetDesktopWindow Lib "user32" () As Long
  96. Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
  97. Public Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
  98. Public Declare Function OffsetRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long
  99. 'Convert string into Byte Array to be used with LOGFONT structure
  100. Public Sub FillIntoArray(Source As String, dest() As Byte)
  101.     For i = 1 To Len(Source)
  102.         dest(i) = Asc(Mid(Source, i, 1))
  103.     Next
  104. End Sub
  105. Public Function GetLogicalSizeFromPoint(hdc As Long, nPointSize As Long) As Long
  106.     GetLogicalSizeFromPoint = -((nPointSize * GetDeviceCaps(hdc, LOGPIXELSY)) / 72) + 1
  107. End Function
  108. 'Select font for caption of button
  109. Public Function SelectFont(hdc As Long, m_Font As StdFont, Optional Color As Long) As Long
  110.     'Selects the specified font into current device context
  111.     On Error Resume Next
  112.     Dim m As LOGFONT
  113.     Dim fnt As Long
  114.     With m_Font
  115.         FillIntoArray .Name, m.lfFaceName
  116.         m.lfWeight = .Weight
  117.         m.lfCharSet = .Charset
  118.         m.lfItalic = .Italic
  119.         m.lfHeight = GetLogicalSizeFromPoint(hdc, .Size)
  120.     End With
  121.     fnt = CreateFontIndirect(m)
  122.     If Not IsMissing(Color) Then
  123.        SetTextColor hdc, Color
  124.     End If
  125.     SelectObject hdc, fnt
  126.     SelectFont = fnt
  127. End Function