如何修改VB程序的Command控件字体颜色

如何修改VB程序的Command控件字体颜色,第1张

Visual Basic允许程序员改变一个CommandButton的背景色--简单的将样式设为Graphical然后改变BackColor就行了。但却没有提供一个简单的方法去改变CommandButton的文字的颜色。本文将告诉你怎样根据你的意愿改变CommandButton的文本颜色,而且如果按钮上有的话,还可以将文本显示在按钮的底部。

在工程中添加以下模块(Module):

Module modExtButtonbas

Option Explicit

'==================================================================

' modExtButtonbas

'

' 本模块可让你改变命令按钮的文本颜色。

' 使用方法:

'

' - 在设计时将文本的Style设为Graphical

'

' - 随意设定背景色和图象属性

'

' - 在Form_Load中调用 SetButton :

' SetButton Command1hWnd, vbBlue

' (你可以任意次的调用该过程甚至不必先调用 RemoveButton)

'

' - 在Form_Unload中调用 RemoveButton :

' RemoveButton Command1hWnd

'

'==================================================================

Private Type RECT

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

Private Declare Function GetParent Lib "user32" _

(ByVal hWnd As Long) As Long

Private Declare Function GetWindowLong Lib "user32" Alias _

"GetWindowLongA" (ByVal hWnd As Long, _

ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32" Alias _

"SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, _

ByVal dwNewLong As Long) As Long

Private Const GWL_WNDPROC = (-4)

Private Declare Function GetProp Lib "user32" Alias "GetPropA" _

(ByVal hWnd As Long, ByVal lpString As String) As Long

Private Declare Function SetProp Lib "user32" Alias "SetPropA" _

(ByVal hWnd As Long, ByVal lpString As String, _

ByVal hData As Long) As Long

Private Declare Function RemoveProp Lib "user32" Alias _

"RemovePropA" (ByVal hWnd As Long, _

ByVal lpString As String) As Long

Private 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

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _

(Destination As Any, Source As Any, ByVal Length As Long)

'Owner draw constants

Private Const ODT_BUTTON = 4

Private Const ODS_SELECTED = &H1

'Window messages we're using

Private Const WM_DESTROY = &H2

Private Const WM_DRAWITEM = &H2B

Private Type DRAWITEMSTRUCT

CtlType As Long

CtlID As Long

itemID As Long

itemAction As Long

itemState As Long

hwndItem As Long

hDC As Long

rcItem As RECT

itemData As Long

End Type

Private Declare Function GetWindowText Lib "user32" Alias _

"GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, _

ByVal cch As Long) As Long

'Various GDI painting-related functions

Private 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

Private Declare Function SetTextColor Lib "gdi32" (ByVal hDC As Long, _

ByVal crColor As Long) As Long

Private Declare Function SetBkMode Lib "gdi32" (ByVal hDC As Long, _

ByVal nBkMode As Long) As Long

Private Const TRANSPARENT = 1

Private Const DT_CENTER = &H1

Public Enum TextVAligns

DT_VCENTER = &H4

DT_BOTTOM = &H8

End Enum

Private Const DT_SINGLELINE = &H20

Private Sub DrawButton(ByVal hWnd As Long, ByVal hDC As Long, _

rct As RECT, ByVal nState As Long)

Dim s As String

Dim va As TextVAligns

va = GetProp(hWnd, "VBTVAlign")

'Prepare DC for drawing

SetBkMode hDC, TRANSPARENT

SetTextColor hDC, GetProp(hWnd, "VBTForeColor")

'Prepare a text buffer

s = String$(255, 0)

'What should we print on the button

GetWindowText hWnd, s, 255

'Trim off nulls

s = Left$(s, InStr(s, Chr$(0)) - 1)

If va = DT_BOTTOM Then

'Adjust specially for VB's CommandButton control

rctBottom = rctBottom - 4

End If

If (nState And ODS_SELECTED) = ODS_SELECTED Then

'Button is in down state - offset

'the text

rctLeft = rctLeft + 1

rctRight = rctRight + 1

rctBottom = rctBottom + 1

rctTop = rctTop + 1

End If

DrawText hDC, s, Len(s), rct, DT_CENTER Or DT_SINGLELINE _

Or va

End Sub

Public Function ExtButtonProc(ByVal hWnd As Long, _

ByVal wMsg As Long, ByVal wParam As Long, _

ByVal lParam As Long) As Long

Dim lOldProc As Long

Dim di As DRAWITEMSTRUCT

lOldProc = GetProp(hWnd, "ExtBtnProc")

ExtButtonProc = CallWindowProc(lOldProc, hWnd, wMsg, wParam, lParam)

If wMsg = WM_DRAWITEM Then

CopyMemory di, ByVal lParam, Len(di)

If diCtlType = ODT_BUTTON Then

If GetProp(dihwndItem, "VBTCustom") = 1 Then

DrawButton dihwndItem, dihDC, dircItem, _

diitemState

End If

End If

ElseIf wMsg = WM_DESTROY Then

ExtButtonUnSubclass hWnd

End If

End Function

Public Sub ExtButtonSubclass(hWndForm As Long)

Dim l As Long

l = GetProp(hWndForm, "ExtBtnProc")

If l <> 0 Then

'Already subclassed

Exit Sub

End If

SetProp hWndForm, "ExtBtnProc", _

GetWindowLong(hWndForm, GWL_WNDPROC)

SetWindowLong hWndForm, GWL_WNDPROC, AddressOf ExtButtonProc

End Sub

Public Sub ExtButtonUnSubclass(hWndForm As Long)

Dim l As Long

l = GetProp(hWndForm, "ExtBtnProc")

If l = 0 Then

'Isn't subclassed

Exit Sub

End If

SetWindowLong hWndForm, GWL_WNDPROC, l

RemoveProp hWndForm, "ExtBtnProc"

End Sub

Public Sub SetButton(ByVal hWnd As Long, _

ByVal lForeColor As Long, _

Optional ByVal VAlign As TextVAligns = DT_VCENTER)

Dim hWndParent As Long

hWndParent = GetParent(hWnd)

If GetProp(hWndParent, "ExtBtnProc") = 0 Then

ExtButtonSubclass hWndParent

End If

SetProp hWnd, "VBTCustom", 1

SetProp hWnd, "VBTForeColor", lForeColor

SetProp hWnd, "VBTVAlign", VAlign

End Sub

Public Sub RemoveButton(ByVal hWnd As Long)

RemoveProp hWnd, "VBTCustom"

RemoveProp hWnd, "VBTForeColor"

RemoveProp hWnd, "VBTVAlign"

End Sub

将Form命名为frmDemo。添加4个CommandButton,不必更改它们的名称,将它们的Style设为Graphical,给第3个按钮设置一幅。

CommandButton也可以放置在一个容器如PictureBox或Frame中,模块会判断,如果需要的话将CommandButton的容器也子类化。

在Form中加入如下代码:

Private Sub Form_Load()

'Initialize each button color

SetButton Command1hWnd, vbRed

SetButton Command2hWnd, &H8000& '深绿色

'Assign this one a DT_BOTTOM alignment because

SetButton Command3hWnd, vbBlue, DT_BOTTOM '含有,将文本放置在按钮底部

SetButton Command4hWnd, &H8080& '暗棕**

End Sub

Private Sub Form_Unload(Cancel As Integer)

'手动解除按钮的子类化

'这并不是必须的

RemoveButton Command1hWnd

RemoveButton Command2hWnd

RemoveButton Command3hWnd

RemoveButton Command4hWnd

End Sub

函数名: settextstyle

功 能: 为图形输出设置当前的文本属性

用 法: void far settextstyle (int font, int direction, char size);

fornt 为字体:DEFAULT_FONT, TRIPLEX_FONT, SMALL_FONT, SANSSERIF_FONT, GOTHIC_FONT,也可以用0 ~ 4代替。

direction 为字符的排列方向:横向和竖向,0为横向排列,1为竖向排列。

size 为字体大小:可用interger做参数

只能选择5个字体。但如果你有不同的中文字库,可以输出不同的中文字体。

html+css代码

文本设置

1、font-size: 字号参数

2、font-style: 字体格式

3、font-weight: 字体粗细

4、颜色属性

color: 参数

注意使用网页安全色

超链接设置

text-decoration: 参数

主要用途是改变浏览器显示文字链接时的下划线。

参数取值范围:

underline:为文字加下划线

overline:为文字加上划线

line-through:为文字加删除线

blink:使文字闪烁

none:不显示上述任何效果

背景

1、背景颜色

background-color: 参数

2、背景

background-image: url(URL)

URL就是背景的存放路径,none表示无。

3、背景重复

background-repeat: 参数

参数取值范围 :

no-repeat:不重复平铺背景

repeat-x:使只在水平方向上平铺

repeat-y:使只在垂直方向上平铺

如果不指定背景重复属性,浏览器默认的是背景向水平、垂直两个方向上平铺。

4、背景固定

背景固定控制背景是否随网页的滚动而滚动。如果不设置背景固定属性,浏览器默认背景随网页的滚动而滚动。为了避免过于花哨的背景在滚动时转移浏览者的注意力,一般都设为固定

background-attachment: 参数

参数取值范围:

fixed:网页滚动时,背景相对于浏览器的窗口而言,固定不动

scroll:网页滚动时,背景相对于浏览器的窗口而言,一起滚动

区块

1、单词间距

word-spacing: 间隔距离

2、字母间距

letter-spacing: 字母间距

3、文本对齐

text-align: 参数

参数的取值:

left:左对齐

right:右对齐

center:居中对齐

justify:相对左右对齐

4、垂直对齐

vertical-align: 参数

top:顶对齐

bottom:底对齐

text-top:相对文本顶对齐

text-bottom:相对文本底对齐

baseline:基准线对齐

middle:中心对齐

sub:以下标的形式显示

super:以上标的形式显示

5、文本缩进

text-indent: 缩进距离

12px相当于一个文字距离

6、空格

white-space: 参数

normal 正常

pre 保留

nowrap 不换行

7、显示样式

display: 参数

参数取值范围:

block:块级元素,在对象前后都换行

inline:在对象前后都不换行

list-item:在对象前后都换行,增加了项目符号

none:无显示

方框

1、height 高度

2、width 宽度

3、padding 内边距

4、margin 外边距

5、float(浮动):可以让块级元素在一行中排列,例如横向菜单。

6、clear 清除浮动

边框

1、样式

border style 参数

边框样式的参数:

none:无边框

dotted:边框为点线

dashed:边框为长短线

solid:边框为实线

double:边框为双线

2、宽度

border width 参数

3、颜色

border color 参数

列表

list-style-type 列表样式

不同浏览器的列表符可能不相同,可能会影响到网页,所以网页中的列表大多都是由背景显示。

控制用户界面的样式

鼠标

cursor:鼠标形状参数

CSS鼠标形状参数表:

鼠标形状:CSS代码

style="cursor:hand"手形

style="cursor:crosshair" 十字形

style="cursor:text"文本形

style="cursor:wait"沙漏形

style="cursor:move" 十字箭头形:

style="cursor:help"问号形

style="cursor:e-resize"右箭头形

style="cursor:n-resize"上箭头形

style="cursor:nw-resize" 左上箭头形

style="cursor:w-resize"左箭头形

style="cursor:s-resize"下箭头形

style="cursor:se-resize" 右下箭头形

style="cursor:sw-resize" 左下箭头形

HTML常用代码之:结构性定义

文件类型<HTML></HTML> (放在档案的开头与结尾)

文件主题<TITLE></TITLE> (必须放在「文头」区块内)

文头<HEAD></HEAD> (描述性资料,像是「主题」)

文体<BODY></BODY> (文件本体)

标题<H></H> (从1到6,有六层选择)

标题的对齐 <HALIGN=LEFT|CENTER|RIGHT></H>

区分<DIV></DIV>

区分的对齐 <DIVALIGN=LEFT|RIGHT|CENTER|JUSTIFY></DIV>

引文区块<BLOCKQUOTE></BLOCKQUOTE> (通常会内缩)

强调<EM></EM> (通常会以斜体显示)

特别强调<STRONG></STRONG> (通常会以加粗显示)

引文<CITE></CITE> (通常会以斜体显示)

码<CODE></CODE> (显示原始码之用)

样本<SAMP></SAMP>

键盘输入<KBD></KBD>

变数<VAR></VAR>

定义<DFN></DFN> (有些浏览器不提供)

地址 <ADDRESS></ADDRESS>

大字<BIG></BIG>

小字<SMALL></SMALL>

与外观相关的标签(作者自订的表现方式)

加粗<B></B>

斜体<I></I>

底线<U></U> (尚有些浏览器不提供)

删除线<S></S> (尚有些浏览器不提供)

下标<SUB></SUB>

上标<SUP></SUP>

打字机体<TT></TT> (用单空格字型显示)

预定格式<PRE></PRE> (保留文件中空格的大小)

预定格式的宽度<PRE WIDTH=></PRE>(以字元计算)

向中看齐<CENTER></CENTER> (文字与都可以)

闪耀<BLINK></BLINK> (有史以来最被嘲弄的标签)

字体大小 <FONTSIZE=></FONT>(从1到7)

改变字体大小 <FONTSIZE=+|-></FONT>

基本字体大小 <BASEFONTSIZE=> (从1到7; 内定为3)

字体颜色 <FONTCOLOR="#$$"></FONT>($$为颜色代码)

HTML常用代码之:修改页面的实用性HTML代码

贴图:<img src="地址">

加入连接:<a href="所要连接的相关地址">写上你想写的字</a>

在新窗口打开连接:<a href="相关地址" target="_blank">写上要写的字</a>

移动字体(走马灯):<marquee>写上你想写的字</marquee>

字体加粗:<b>写上你想写的字</b>

字体斜体:<i>写上你想写的字</i>

字体下划线: <u>写上你想写的字</u>

字体删除线: <s>写上你想写的字</s>

字体加大: <big>写上你想写的字</big>

字体控制大小:<h1>写上你想写的字</h1> (其中字体大小可从h1-h5,h1最大,h5最小)

更改字体颜色:<font color="#value">写上你想写的字</font>(其中value值在000000与ffffff(16位进制)之间

消除连接的下划线:<a href="相关地址" style="text-decoration:none">写上你想写的字</a>

贴音乐:<embed src="音乐地址" width="宽度" height="高度" autostart=false>

贴flash: <embed src="flash地址" width="宽度" height="高度">

贴影视文件:<img dynsrc="文件地址" width="宽度" height="高度" start=mouseover>

换行:<br>

段落:<p>段落</p>

原始文字样式:<pre>正文</pre>

换帖子背景:<body background="背景地址">

固定帖子背景不随滚动条滚动:<body background="背景地址" body bgproperties=fixed>

定制帖子背景颜色:<body bgcolor="#value">(value值见10)

帖子背景音乐:<bgsound="背景音乐地址" loop=infinite>

贴网页:<iframe src="相关地址" width="宽度" height="高度"></iframe>

HTML常用代码之:常常会遇到的问题

点击关闭窗口

<a href="javascript:topwindowclose();">点击关闭窗口</a>!

请问如何去掉主页右面的滚动条?

<body scroll="no">

<body style="overflow-y:hidden">

如何做到让一个网页自动关闭

<html>

<head>

<OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">

<param name="Command" value="Close">

</object>

</head>

<body >

这个窗口会在10秒过后自动关闭,而且不会出现提示 </body>

如何在不刷新页面的情况下刷新css

<style>

button{ color:#000000;}

</style>

<button nclick=documentstyleSheets[0]rules[0]stylecolor=‘‘‘‘red‘‘‘‘>点击按钮直接修改style标签里button选择符使按钮改为红色</button>

请问如何让网页自动刷新?

在head部记入<META >

以上就是关于如何修改VB程序的Command控件字体颜色全部的内容,包括:如何修改VB程序的Command控件字体颜色、c语言中怎么改变输出的字体、程序员必须知道的HTML常用代码有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9444038.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存