作者:绿色风
分类:
时间:2022-08-17
浏览:154
楼主 wise |
Q:如何设置窗体为半透明? A:ALT+F11→插入模块→输入以下代码:
- Private Declare Function GetActiveWindow Lib "USER32" () As Long
- '获得当前活动窗口的窗口句柄
- Private Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal lngWinIdx As Long, ByVal dwNewLong As Long) As Long
- '改变指定窗口的属性
- Private Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal lngWinIdx As Long) As Long
- '获得有关指定窗口的信息
- Private Declare Function SetLayeredWindowAttributes Lib "USER32" (ByVal hWnd As Long, ByVal crKey As Integer, ByVal bAlpha As Integer, ByVal dwFlags As Long) As Long
- 'hWnd是透明窗体的句柄
- 'crKey为掩码的颜色,可以用RGB(r,g,b)来指定
- 'bAlpha是不透明度,取值范围是(0,255),其中0代表全透明,255代表不透明
- 'dwFlags是透明方式,可以取两个值:
- '当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效;
- '当取值为LWA_COLORKEY时,窗体中的所有颜色为crKey的地方将变为透明,bAlpha参数无效。
- 'LWA_ALPHA = 0x2
- 'LWA_COLORKEY=0x1
- '也可以取两个值的组合:LWA_ALPHA Or LWA_COLORKEY。这样crKey的地方将变为全透明,而其它地方根据bAlpha参数确定透明度。
- Private Sub UserForm_Click()
- Const level = 50 '(设置范围为 0-100)
- Dim hwd As Long
- hWnd = GetActiveWindow
- SetWindowLong hWnd, &HFFEC, GetWindowLong(hWnd, &HFFEC) Or &H80000
- SetLayeredWindowAttributes hWnd, 0, (255 * level) / 100, &H2
- Me.Caption = "窗体透明度:" & (100 - level) & "%"
- End Sub
窗体透明.rar |
2楼 战神一啸 |
NB! |
3楼 dongzhong |
真的是高手呀! 顶一个,见识了 |
4楼 box217 |
支持~学习了··谢谢了· ·
额·貌似错误, Me~ |
5楼 水星钓鱼 |
学习 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一