VB无所不能之四:制作透明和半透明窗体
VB无所不能之四:制作透明和半透明窗体
——作者:钟声
我们经常可以看到这样的窗体,觉得很炫,如图所示:
同样,对Windows系统方面的编程似乎首先想到的绝对不是VB,而大部分程序员想到的一定是VC。
其实,VB对于这个实现非常方便且简单,用到了“user32”中的SetLayeredWindowAttributes()函数。
SetLayeredWindowAttributes()函数介绍:
函数声明:
Declare Function SetLayeredWindowAttributes Lib "user32" () Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
hwnd是透明窗体的句柄,
crKey为颜色值,
bAlpha是透明度,取值范围是[0,255],
dwFlags是透明方式,可以取两个值:当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效;
当取值为LWA_COLORKEY时,bAlpha参数有效而窗体中的所有颜色为crKey的地方将变为透明。
下面我们做两个实验:
第一个:做一个半透明窗体
步骤一:打开VB建立一个窗体Form
步骤二:将窗体背景颜色设为:&HFF0000
步骤三:将下面代码粘贴到程序中:
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" () Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" () Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function SetLayeredWindowAttributes Lib "user32" () Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const WS_EX_LAYERED = &H80000
Const GWL_EXSTYLE = () Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = &H2
Private Const LWA_COLORKEY = &H1
Sub Form_Load() Sub Form_Load()
&nb
相关文档:
App 对象是VB应用程序的全局信息,如应用程序的标题、版本信息、可执行文件和帮助文件的路径及名称以及是否运行前一个应用程序的示例。
属性
------- 其他属性-----------------
EXEName 属性 返回当前正运行的可执行文件 ......
·定义完善的变量具有明确规定的数据类型和作用域
·要正确使用变量,必须使用表义性强的变量名来说明这些变量,并且必须为它们赋予焦点
·编程原则
·定义有焦点的变量(服务于一个定义明确的目的)
·为变量赋予表义性强的名字
......
·注释能使注释能使代码更加容易理解,更加容易跟踪。
·出色的注释就像一幅好的设计蓝图,能够引导阅读者通过你的应用程序的曲折之处,能够说明预期的运行结果和可能出现的异常情况。
·编程原则
·用文字说明代码的作用
·编写非常出色的 ......
1、关于吉大视频:1-3集讲VB程序设计的概述4-30集讲VB基础知识,如控件的使用31-64集讲ActiveX控件、数据库等的高级编程部分。
看的过程中注意快捷键的使用和截图工具的运用,看视频时将重点作出标注。
2、由CSTR、Cstr()、string、Instr()和str()(此为深度扩展)所想到的关于总结的方法。
&nb ......
Format[$] ( expr [ , fmt ] )
format 返回变体型
format$ 强制返回为文本
--------------------------------
数字类型的格式化
--------------------------------
固定格式参数:
General Number 普通数字,如可以用来去掉千位分隔号
format$("100 ......