VB当中设置自定义颜色问题,例如定义成vbyellow之类,很急,如果不够马上就加!!!!
xdjzz 2008-01-03 11:23:12 我有一个定义dtpicker背景颜色的方法,但是我不想使用vbyellow,vbred之类的,如何设置一种自定义颜色呢。
方法如下:
Private Const GCL_HBRBACKGROUND = (-10)
Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Dim oldbrush As Long
Dim brush As Long
Private Sub Form_Load()
Dim i As Long
brush = CreateSolidBrush(vbYellow)
oldbrush = GetClassLong(Me.DTPicker1.hwnd, GCL_HBRBACKGROUND)
i = SetClassLong(Me.DTPicker1.hwnd, GCL_HBRBACKGROUND, brush)
DTPicker1.Width = Me.DTPicker1.Width + 10
DTPicker1.Width = Me.DTPicker1.Width - 10
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim i As Long
i = SetClassLong(Me.DTPicker1.hwnd, GCL_HBRBACKGROUND, oldbrush)
DeleteObject brush
End Sub