VB6 无边框窗口圆角实现 #Win11#
vb吧
全部回复
仅看楼主
level 11
余思培 楼主
如题,使用DWMAPI
2022年08月11日 00点08分 1
level 11
余思培 楼主
'声明
Declare Function DwmSetWindowAttribute Lib "dwmapi.dll" (ByVal hWnd As Long,ByVal dwAttribute As Long,ByRef pvAttribute As Long,ByVal cbAttribute As Long) As Long
'使用
Sub Form_Load()
Call DwmSetWindowAttribute(Me.hWnd,33,2,4)
End Sub
2022年08月11日 00点08分 2
这只是VB6设置边框圆角的一种简单的调用方式,其他时候使用DwmSetWindowAttribute时不要这么用[滑稽]
2022年08月11日 01点08分
@余思培 啥意思?只有在瘟11中才能用这个吗……
2022年08月26日 16点08分
@涐吢铱舊囿儚 因为我传递参数偷懒了,没有把他写成对应的常数,而且第三个参数理论讲是传一个结构体,第四个参数传递的是第三个参数(结构体)的大小
2022年08月27日 09点08分
level 11
余思培 楼主
另外在Win11上的无标题窗口,除了使用DWM来实现圆角窗口,还可以使用设置窗口区域的方法(这个方法在Win11以下的版本应该也能够使用)
2022年08月27日 09点08分 3
level 11
余思培 楼主
使用DWMAPI与使用SetWindowRgn
>>>代码:
>>>使用DWMAPI:
>>>使用SetWindowRgn:
2022年08月27日 09点08分 4
可以发现,使用后者有明显的锯齿感
2022年08月27日 09点08分
1