函数SetLayeredWindowAttributes
使用这个函数,可以轻松的实现半透明窗体。按照微软的要求,透明窗体窗体在创建时应使用WS_EX_LAYERED参数(用CreateWindowEx),或者在创建后设置该参数(用SetWindowLong),我选用后者。全部函数、常量声明如下:
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 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的地方将变为透明--这个功能很有用:我们不必再为建立不规则形状的窗体而调用一大堆区域分析、创建、合并函数了,只需指定透明处的颜色值即可,哈哈哈哈!请看具体代码。
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = &H2
Private Const LWA_COLORKEY = &H1
代码一:一个半透明窗体
Private Sub Form_Load()
Dim rtn As Long
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, 0, 200, LWA_ALPHA
End Sub
代码二:形状不规则的窗体
Private Sub Form_Load()
Dim rtn As Long
BorderStyler=0
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, &HFF0000, 0, LWA_COLORKEY '将扣去窗口中的蓝色
End Sub
分享到:
相关推荐
vb制作半透明窗口,怎样制作vb的半透明窗口,含代码和窗体文件
半透明窗体为你的vb程序增色不少,调试通过。
在@浓情咖啡的基础上修改,增加了半透明png图片逐渐消失功能。窗体2是一个非矩形窗体,制作了简易
半透明窗体(窗体对鼠标点击有反应): Option Explicit 'Transparancy API's Private Dec...... ..... 半透明窗体(对鼠标点击无反应): Option Explicit Private Dec...... ...... 还有种类似的"窗体" 可以隔着它...
计算机编程,学习交流 vb实现窗体半透明(源码)
VB中利用API函数制作的半透明窗体源代码
VB半透明窗体ALPHAFORM例子 学习窗体操作的好例子,可以做出精美的窗体
动态半透明窗体 绝对可行 不是本人编写 只是参照
vb半透明窗体设计程序代码 代码全集
用vb6实现半透明的窗体-源码(可以调节透明度),无需其他控件,利用模块和窗体代码来实现。
动态半透明窗体VB6.0源代码.rar
一个简单的VB半透明窗体,基于API函数,没有用到三方函数,程序极简单,VB新手朋友也能看懂。
一直想做一个漂亮的窗体,但在网上搜索出来的一般都是Delphi、VC & VB,就没有找到VB.NET的源码,这是从Delphi7的源码中移植过来的,兴奋之余就拿出来跟大家分享一下;我平时用的是Labview,业余也学一下其它编程...
用vb简单实现窗体透明(控件不透明),例子简单,大学互相学习(注:代码来自网络)
新建VB工程,加载此模块的代码。...因为是调用的API函数,你可以把此功能转化成VC的代码,在VC工程中也可以使用这种透明和半透明效果。当你遇到有透明和半透明的需求时,你就知道它的好处了。真的很爽!
VB版屏幕日历,主要是半透明窗体,保存设置,开机自启动等。还带节日显示!
Winform窗体半透明,控件不透明,及窗体美化效果
1. 本软件的主要功能是提醒功能。提醒长时间在电脑前工作而不知道休息的人注意休息。 2. 配置文件中的配置项,建议时间间隔以小时为单位,...4. 本软件中包含的技术点有:半透明效果,全透明效果,软件界面的置顶等。
vb窗体的透明或半透明状态的设置还有文本框的透明
内容索引:VB源码,界面编程,半透明窗体,淡入淡出 VB半透明窗体并且淡入淡出显示效果,VB编写的窗体小特效,让窗体半透明显示并且淡入淡出显示,这个功能很有用吧?为你的程序窗口增添几分活力,相信你会喜欢的。