‘壹’ VB按钮如何设置颜色和按钮文字设置颜色
首先command的style要设为1,否则无法改变
然后在backcolor设置颜色
按钮的字体颜色不能改
如果想改字体颜色,简单点可以用image做按钮。
如果一定要,请看:
在工程中添加以下模块(Mole):
MolemodExtButton.bas
OptionExplicit
'==================================================================
'modExtButton.bas
'
'本模块可让你改变命令按钮的文本颜色。
'使用方法:
'
'-在设计时将文本的Style设为Graphical.
'
'-随意设定背景色和图象属性.
'
'-在Form_Load中调用SetButton:
'SetButtonCommand1.hWnd,vbBlue
'(你可以任意次的调用该过程甚至不必先调用RemoveButton.)
'
'-在Form_Unload中调用RemoveButton:
'RemoveButtonCommand1.hWnd
'
'==================================================================
PrivateTypeRECT
LeftAsLong
TopAsLong
RightAsLong
BottomAsLong
EndType
"user32"_
(ByValhWndAsLong)AsLong
"user32"Alias_
"GetWindowLongA"(ByValhWndAsLong,_
ByValnIndexAsLong)AsLong
"user32"Alias_
"SetWindowLongA"(ByValhWndAsLong,ByValnIndexAsLong,_
ByValdwNewLongAsLong)AsLong
PrivateConstGWL_WNDPROC=(-4)
"user32"Alias"GetPropA"_
(ByValhWndAsLong,ByVallpStringAsString)AsLong
"user32"Alias"SetPropA"_
(ByValhWndAsLong,ByVallpStringAsString,_
ByValhDataAsLong)AsLong
"user32"Alias_
"RemovePropA"(ByValhWndAsLong,_
ByVallpStringAsString)AsLong
"user32"Alias_
"CallWindowProcA"(ByVallpPrevWndFuncAsLong,_
ByValhWndAsLong,ByValMsgAsLong,ByValwParamAsLong,_
ByVallParamAsLong)AsLong
"kernel32"Alias"RtlMoveMemory"_
(DestinationAsAny,SourceAsAny,ByValLengthAsLong)
'Ownerdrawconstants
PrivateConstODT_BUTTON=4
PrivateConstODS_SELECTED=&H1
'Windowmessageswe'reusing
PrivateConstWM_DESTROY=&H2
PrivateConstWM_DRAWITEM=&H2B
PrivateTypeDRAWITEMSTRUCT
CtlTypeAsLong
CtlIDAsLong
itemIDAsLong
itemActionAsLong
itemStateAsLong
hwndItemAsLong
hDCAsLong
rcItemAsRECT
itemDataAsLong
EndType
"user32"Alias_
"GetWindowTextA"(ByValhWndAsLong,ByVallpStringAsString,_
ByValcchAsLong)AsLong
'VariousGDIpainting-relatedfunctions
"user32"Alias"DrawTextA"_
(ByValhDCAsLong,ByVallpStrAsString,ByValnCountAsLong,_
lpRectAsRECT,ByValwFormatAsLong)AsLong
"gdi32"(ByValhDCAsLong,_
ByValcrColorAsLong)AsLong
"gdi32"(ByValhDCAsLong,_
ByValnBkModeAsLong)AsLong
PrivateConstTRANSPARENT=1
PrivateConstDT_CENTER=&H1
PublicEnumTextVAligns
DT_VCENTER=&H4
DT_BOTTOM=&H8
EndEnum
PrivateConstDT_SINGLELINE=&H20
PrivateSubDrawButton(ByValhWndAsLong,ByValhDCAsLong,_
rctAsRECT,ByValnStateAsLong)
DimsAsString
DimvaAsTextVAligns
va=GetProp(hWnd,"VBTVAlign")
'PrepareDCfordrawing
SetBkModehDC,TRANSPARENT
SetTextColorhDC,GetProp(hWnd,"VBTForeColor")
'Prepareatextbuffer
s=String$(255,0)
'Whatshouldweprintonthebutton?
GetWindowTexthWnd,s,255
'Trimoffnulls
s=Left$(s,InStr(s,Chr$(0))-1)
Ifva=DT_BOTTOMThen
'AdjustspeciallyforVB'sCommandButtoncontrol
rct.Bottom=rct.Bottom-4
EndIf
If(nStateAndODS_SELECTED)=ODS_SELECTEDThen
'Buttonisindownstate-offset
'thetext
rct.Left=rct.Left+1
rct.Right=rct.Right+1
rct.Bottom=rct.Bottom+1
rct.Top=rct.Top+1
EndIf
DrawTexthDC,s,Len(s),rct,DT_CENTEROrDT_SINGLELINE_
Orva
EndSub
PublicFunctionExtButtonProc(ByValhWndAsLong,_
ByValwMsgAsLong,ByValwParamAsLong,_
ByVallParamAsLong)AsLong
DimlOldProcAsLong
DimdiAsDRAWITEMSTRUCT
lOldProc=GetProp(hWnd,"ExtBtnProc")
ExtButtonProc=CallWindowProc(lOldProc,hWnd,wMsg,wParam,lParam)
IfwMsg=WM_DRAWITEMThen
CopyMemorydi,ByVallParam,Len(di)
Ifdi.CtlType=ODT_BUTTONThen
IfGetProp(di.hwndItem,"VBTCustom")=1Then
DrawButtondi.hwndItem,di.hDC,di.rcItem,_
di.itemState
EndIf
EndIf
ElseIfwMsg=WM_DESTROYThen
ExtButtonUnSubclasshWnd
EndIf
EndFunction
PublicSubExtButtonSubclass(hWndFormAsLong)
DimlAsLong
l=GetProp(hWndForm,"ExtBtnProc")
Ifl<>0Then
'Alreadysubclassed
ExitSub
EndIf
SetProphWndForm,"ExtBtnProc",_
GetWindowLong(hWndForm,GWL_WNDPROC)
SetWindowLonghWndForm,GWL_WNDPROC,AddressOfExtButtonProc
EndSub
PublicSubExtButtonUnSubclass(hWndFormAsLong)
DimlAsLong
l=GetProp(hWndForm,"ExtBtnProc")
Ifl=0Then
'Isn'tsubclassed
ExitSub
EndIf
SetWindowLonghWndForm,GWL_WNDPROC,l
RemoveProphWndForm,"ExtBtnProc"
EndSub
PublicSubSetButton(ByValhWndAsLong,_
ByVallForeColorAsLong,_
=DT_VCENTER)
DimhWndParentAsLong
hWndParent=GetParent(hWnd)
IfGetProp(hWndParent,"ExtBtnProc")=0Then
ExtButtonSubclasshWndParent
EndIf
SetProphWnd,"VBTCustom",1
SetProphWnd,"VBTForeColor",lForeColor
SetProphWnd,"VBTVAlign",VAlign
EndSub
PublicSubRemoveButton(ByValhWndAsLong)
RemoveProphWnd,"VBTCustom"
RemoveProphWnd,"VBTForeColor"
RemoveProphWnd,"VBTVAlign"
EndSub
'然后回到FORM中:
'添加CommandButton,不必更改它们的名称,将它们的Style设为Graphical,给第3个按钮设置一幅图片。
'CommandButton也可以放置在一个容器如PictureBox或Frame中,模块会判断,如果需要的话将CommandButton的容器也子类化。
'在Form中的代码:
PrivateSubForm_Load()
'Initializeeachbuttoncolor.
SetButtonCommand1.hWnd,vbRed
SetButtonCommand2.hWnd,&H8000&'深绿色
'AssignthisoneaDT_BOTTOMalignmentbecause
SetButtonCommand3.hWnd,vbBlue,DT_BOTTOM'含有图片,将文本放置在按钮底部
SetButtonCommand4.hWnd,&H8080&'暗棕黄色
EndSub
PrivateSubForm_Unload(CancelAsInteger)
'手动解除按钮的子类化
'这并不是必须的
RemoveButtonCommand1.hWnd
RemoveButtonCommand2.hWnd
RemoveButtonCommand3.hWnd
RemoveButtonCommand4.hWnd
EndSub
Form=0To9
SetButtonCmdNum(m).hWnd,vbBlue
Next
Forn=1To4
SetButtonCmdCal(n).hWnd,vbRed
Next
Forl=2To4
SetButtonCmdOth(l).hWnd,vbRed
Next
‘贰’ vb编程,自定义变量实现颜色请指教下
其实这个问题特简单,但是三色需要三个文本框(数组控件)分别输入,设置红色、绿色、蓝色,在文本框的Text1_Change事件中设置Text2的颜色就可以了。
PrivateSubForm_Load()
Text2.Text="你好吗?"
Text2.FontSize=20
Text2.FontBold=True
EndSub
PrivateSubText1_Change(IndexAsInteger)
DimAAAsInteger,BBAsString
AA=Index
IfAA=0ThenBB="红色"
IfAA=1ThenBB="绿色"
IfAA=2ThenBB="蓝色"
IfIsNumeric(Text1(AA).Text)=FalseThen
MsgBox"你输入的"&BB&"不是数字,各种颜色的值必须是0-255之间的正整数!"
Text1(AA).Text=""
Text1(AA).SetFocus
ExitSub
EndIf
IfVal(Text1(AA).Text)<0OrVal(Text1(AA).Text)>255Then
MsgBox"你输入的"&BB&"数字不正确,不能小于0,也不能大于255!"
Text1(AA).Text=""
Text1(AA).SetFocus
ExitSub
EndIf
IfVal(Text1(0).Text)>=0AndVal(Text1(0).Text)<=255AndVal(Text1(1).Text)>=0AndVal(Text1(1).Text)<=255AndVal(Text1(2).Text)>=0AndVal(Text1(2).Text)<=255Then
Text2.ForeColor=RGB(Val(Text1(0).Text),Val(Text1(1).Text),Val(Text1(2).Text))
EndIf
EndSub
‘叁’ VB中窗体颜色怎么改变
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
form1.backcolor =vbRed
endsub
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
form1.backcolor =vbGreen
endsub
(3)vb怎样设置颜色扩展阅读:
VB当中的颜色代码
vbBlack &H0 黑色
vbRed &HFF 红色
vbGreen &HFF00 绿色
vbYellow &HFFFF 黄色
vbBlue &HFF0000 兰色
vbMagenta &HFF00FF 洋红
vbCyan &HFFFF00 青色
vbWhite &HFFFFFF 白色
vbGrayText &H80000011 变灰的(无效的)文字
vbButtonText &H80000012 揿压按钮上文字的颜色
vbInactiveCaptionText &H80000013 非活动标题内文字的颜色
vb3DHighlight &H80000014 三维显示元素的高亮颜色
vb3DDKShadow &H80000015 三维显示元素的最暗阴影颜色
vb3DLight &H80000016 低于 vb3Dhighlight 的 三维次高亮颜色
vb3DFace &H8000000F 文字表面的颜色
vb3DShadow &H80000010 文字阴影的颜色
vbInfoText &H80000017 提示窗内文字的颜色
vbInfoBackground &H80000018 提示窗内背景的颜色
‘肆’ VB中怎么改变单击按键的颜色
1、打开Visual Basic 6.0软件,新建一个标准exe工程;
‘伍’ VB代码颜色设置
excuse
me,VB是编写简单程序的软件,在代码窗口中设置控件的属性、事件,然后调试、保存窗体,生成.exe可执行文件。代码本身的颜色将不能出现在程序中。
不过,如果你想改变某些控件的颜色,可在属性窗口中改,也可代码窗口中
对象名.forecolor=RGB(0,255,0)
‘陆’ VB程序中如何设置字体颜色
我也不想看上面楼主说的意思了。
因我机器没有vb,只能说说思路了。你已经说了是用richtextbox,具体思路如下:
1,这个控件分别有有设置颜色,字体的属性。
2,因为你可能是想每行的字体,颜色都不一样。这就要对文本框的位进行计算,从0位到行的最后一位进行选中,用属性设置。
依次计算就可以达到目标。
3,上面的方法是一种非常死板的方法。如果你想好一点,就采取api取行实现。那样子方法比较复杂。但是对于程序的性能可能相对较好。
‘柒’ vb rgb函数设置颜色
比如设置窗体颜色,代码如下:
Private Sub Command1_Click()
Form1.BackColor = RGB(255, 222, 14)
End Sub
‘捌’ vb中颜色设置的代码是什么
用颜色常数:
Form1.BackColor = vbRed '红
Form1.BackColor = vbBlue '蓝
Form1.BackColor = vbWhite '白
用QBColor函数:
Form1.BackColor = QBColor(n) 'n的值是0到15
用RGB函数:
Form1.BackColor = RGB(r, g, b) 'r、g、b的值分别是0到255
直接用颜色值:
Form1.BackColor = &HFF& '红
Form1.BackColor = &HFF00& '绿
Form1.BackColor = &HFF0000 '蓝
前两种方式只能设置16种颜色,后两种方式可设置16777216色
‘玖’ VB6中怎么修改按钮的颜色
VB6可通过Style 属性给按钮实现显色功能。
Style 属性,返回或设置一个值,该值用来指示控件的显示类型和行为。在运行时是只读的。
‘拾’ VB中如何设置调整label的字体、大小和颜色
可以参考下面的代码:
Private Sub Form_Load()
Label1.Font = "楷体" '字体改为楷体
Label1.FontSize = 50 '字体大小
Label1.ForeColor = vbRed '字体颜色改为红色
Label1.AutoSize = True 'label随文字内容自动改变大小
End Sub
(10)vb怎样设置颜色扩展阅读:
VB参考函数
Date 函数: 返回当前系统日期。
DateAdd 函数: 返回加上了指定的时间间隔的日期。
DateSerial 函数: 返回指定年月日的日期子类型的变体 。
DateValue 函数: 返回日期子类型的变体 。
Day 函数: 返回日期,取值范围为 1 至 31。
Description 属性: 返回或者设置说明某个错误的字符串。