VB 版 (精华区)

发信人: Mice (开心果), 信区: VisualBasic
标  题: [转载] [P]VB调用API技巧--制作渐变的窗口背景色 
发信站: 紫 丁 香 (Mon Nov 16 19:12:33 1998), 转信

【 以下文字转载自 VisualProgram 讨论区 】
【 原文由 Mice 所发表 】
发信人: xiaobo (激情蕴于心中), 信区: Programming 
标 题: VB调用API技巧--制作渐变的窗口背景色 
发信站: BBS 水木清华站 (Sun Oct  5 11:21:56 1997) 
 
转自《中国计算机报》[一九九七年十月六日 总第678期] 第128版  
 
吴斌  
 
VB调用API技巧--制作渐变的窗口背景色 
 
  在许多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运行,就会出现一个以从上至下、由浅至深的渐 
变蓝色为背景的窗口。对上述代码稍加改动,便可制作出 
各种颜色和水平方向的渐变背景。 
 
-- 
  江声浩荡,自屋后上升...... 
                            --《约翰.可利斯朵夫》 
 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.26.20] 



--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: 老巴夺转信机器人程序]
--
※ 转载:.紫 丁 香 bbs.hit.edu.cn.[FROM: fengyun.hit.edu.]
--
※ 转载:.紫 丁 香 bbs.hit.edu.cn.[FROM: cad4.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:1.963毫秒