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
...全文
346 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
daixinhou 2008-01-03
  • 打赏
  • 举报
回复
rgb(0,0,0)-----rgb(255,255,255)够用的了吧
sandy_zc_1 2008-01-03
  • 打赏
  • 举报
回复
VB中使用Long类型来描述颜色。

dim color as long

把color设置成不同的值就可以表示颜色。

VB中的颜色是RGB24位,使用16进制可以很轻松地表示:&hBBGGRR,其中BB蓝色,从00到FF(FF蓝色最强,00没有蓝色),GG是绿色,RR是红色。
这样红绿蓝三色可以构成所有的颜色。

使用RGB()函数可以更更直观地生成颜色值RGB(R,G,B),R为红色,G为绿色,B为蓝色。范围从0到255。
比如:
RGB(255,255,255)=&hffffff=vbWhite '白色
RGB(0,0,255)=&hff0000=vbBlue '蓝色
RGB(255,255,0)=&h00ffff&=vbYellow '黄色

'……如此可以得到所有的颜色
波导终结者 2008-01-03
  • 打赏
  • 举报
回复
Grid1.CellBackColor = &HFFC0C0

7,786

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧