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
相关文档:
Asc 函数
返回一个 Integer,代表字符串中首字母的字符代码。
语法:
Asc(string)
必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。
说明:在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 &ndas ......
·匈牙利标记法
·使用3字符前缀来表示数据类型和控件类型
·3个字符可以实现充分多变性,并使前缀合乎逻辑和直观
·表示变量的作用域
·可以并且应该使用前缀来表示变量的作用域 ......
VB6IDEMouseWheelAddin.dll
就是这个能使你在VB的代码编辑窗口能够使用鼠标滚轮,编辑代码、查看代码更方便。
下面详述:
1、给大家一个下载地址:
http://download.microsoft.com/download/e/f/b/efb39198-7c59-4ace-a5c4-8f0f88e00d34/vb6mousewheel.exe右击解压,再右击解压,这时就会看到一个dll文件,这个就是我 ......
昨天下午我和小胖被米老师传唤到市医院去,米老师想听听他周六上的课对我的影响有多大,我回答的基本内容和《10年 VB 1》里面的内容差不多,但米老师感觉很空洞,感觉我在泛泛而谈,其实我也有感觉。
为了将米老师说的总结方法应用于实践,我这两天敲代码发现MsgBox,InputBox,Print的用法差不多,然后就将其总结如下:
......