1,485
社区成员
发帖
与我相关
我的任务
分享
‘建个模块
Public Const GWL_WNDPROC = (-4)
Public Const TRANSPARENT = 1
Public Const WM_CTLCOLOREDIT = &H133
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
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 SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
Public Declare Function SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
Public Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Public lpPrevWndProc As Long
Public Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case uMsg
Case WM_CTLCOLOREDIT '在这个消息中设置字体颜色
SetBkMode wParam, TRANSPARENT
SetTextColor wParam, vbGreen '文本色
WindowProc = CreateSolidBrush(vbRed) '背景色
Case Else
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Select
End Function
窗体代码里加一行
If (0& = mlhWnd) Then
picCont.Cls
picCont.Print "创建控件出错。"
Else
lpPrevWndProc = SetWindowLong(picCont.hWnd, GWL_WNDPROC, AddressOf WindowProc) '<----Bingo
Call SetWindowText(mlhWnd, StrPtr("Abc 123-XYZ"))
' List控件添加文本:
'Call SendMessage(mlhWnd, &H180&, 0&, StrPtr("列表项文本"))
End If