发表评论(0)作者:, 平台:, 阅读:13293, 日期:2000-03-12
制作渐变的窗口背景色
吴斌
在许多Windows软件的安装程序中,时常可以看到以某种颜色由浅至深的渐变
为背景的窗口。使用VB制作这类窗口的方法有不少,而通过调用API函数绘制渐变
的窗口背景色,似乎是一种既简单又节省资源的方法。
首先,在module文件中加入下列声明语句:
Declare Function CreateSolidBrush Lib"GDI"(ByVal crColor As Long) As
Integer
Declare Function FillRect Lib"USER"(ByVal hDC As Integer,lpRect As
RECT,ByVal hBrush As Integer)As Integer
Declare Function DeleteObject Lib"GDI"(ByVal hObject As Integer)As
Integer
Type RECT
left As Integer
top As Integer
right As Integer
bottom As Integer
EndType
然后,在窗口的Paint事件中加入下列代码:
Private Sub Form_Paint()
Dim Color As Integer
Dim hBrush As Integer
Dim OldMode As Integer
Dim RetVal As Integer
Dim StepSize As Integer
Dim X As Integer
Dim FillArea As RECT
OldMode%=Me.ScaleMode
Me.ScaleMode=3
StepSize%=1+Me.ScaleHeight/80
Color%=255
FillArea.left=0
FillArea.right=Me.ScaleWidth
FillArea.top=0
FillArea.bottom=StepSize%
For X%=1 To 80
hBrush%=CreateSolidBrush (RGB(0,0,Color%))
RetVal%=FillRect(Me.hDC,FillArea,hBrush%)
RetVal%=DeleteObject(hBrush%)
Color%=Color%-4
If Color% < 0 Then Color%=0
FillArea.top=FillArea.bottom
FillArea.bottom=FillArea.bottom+StepSize%
Next
Me.ScaleMode=OldMode%
EndSub
按F5运行,就会出现一个以从上至下、由浅至深的渐变蓝色为背景的窗口。对
上述代码稍加改动,便可制作出各种颜色和水平方向的渐变背景。
吴斌
在许多Windows软件的安装程序中,时常可以看到以某种颜色由浅至深的渐变
为背景的窗口。使用VB制作这类窗口的方法有不少,而通过调用API函数绘制渐变
的窗口背景色,似乎是一种既简单又节省资源的方法。
首先,在module文件中加入下列声明语句:
Declare Function CreateSolidBrush Lib"GDI"(ByVal crColor As Long) As
Integer
Declare Function FillRect Lib"USER"(ByVal hDC As Integer,lpRect As
RECT,ByVal hBrush As Integer)As Integer
Declare Function DeleteObject Lib"GDI"(ByVal hObject As Integer)As
Integer
Type RECT
left As Integer
top As Integer
right As Integer
bottom As Integer
EndType
然后,在窗口的Paint事件中加入下列代码:
Private Sub Form_Paint()
Dim Color As Integer
Dim hBrush As Integer
Dim OldMode As Integer
Dim RetVal As Integer
Dim StepSize As Integer
Dim X As Integer
Dim FillArea As RECT
OldMode%=Me.ScaleMode
Me.ScaleMode=3
StepSize%=1+Me.ScaleHeight/80
Color%=255
FillArea.left=0
FillArea.right=Me.ScaleWidth
FillArea.top=0
FillArea.bottom=StepSize%
For X%=1 To 80
hBrush%=CreateSolidBrush (RGB(0,0,Color%))
RetVal%=FillRect(Me.hDC,FillArea,hBrush%)
RetVal%=DeleteObject(hBrush%)
Color%=Color%-4
If Color% < 0 Then Color%=0
FillArea.top=FillArea.bottom
FillArea.bottom=FillArea.bottom+StepSize%
Next
Me.ScaleMode=OldMode%
EndSub
按F5运行,就会出现一个以从上至下、由浅至深的渐变蓝色为背景的窗口。对
上述代码稍加改动,便可制作出各种颜色和水平方向的渐变背景。