最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何创建[圆角、边框色彩渐变、边框宽度自定义]窗体
时间:2022-07-02 12:07:47 编辑:袖梨 来源:一聚教程网
先让大家看一下我要实现的窗体效果:
该窗体的背景色、圆角半径(下面代码中将圆角半径等于边框宽度,此为为般化处理,参考者可视具体需要而对代码略作修改,使二者具有不同的值,以获得不同的效果)由用户根据需要改变。上、左边框的色彩为白色(其实为DrawEdge过程中colTopLef决定,可设为其他值)到窗体背景色的渐变,下、右边框的色彩为RGB(132, 132, 132)(其实为DrawEdge过程中colBottomRight所决定,也可设为其他值)到窗体背景色的渐变。
要实现该效果,你的窗体(对任拥有hWnd属性的对象,也一样实用)应作如下设置:
1――BorderStyle=0,
2――ScaleMode=3 (所有GDI类API使用的长度单位都为Pixel,对应于该项的设置)。
3――AutoRedraw=True
主要使用了三个过程:
WindowShape ――'重塑窗体轮廓,入口函数,调用后两个函数
MakeRoundCorner――圆角
DrawEdge ――画外框
以下代码为要实现特效的窗体中的代码:
===============================================================
Private Sub Form_Load()
'调用入口函数实现效果
WindowShape hwnd, hdc, BackColor, ScaleWidth + 1, ScaleHeight + 1, 10
'将窗体置顶,
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
===============================================================
以下为具体实现代码,可置于一个module中:
===============================================================
Option Explicit
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
该窗体的背景色、圆角半径(下面代码中将圆角半径等于边框宽度,此为为般化处理,参考者可视具体需要而对代码略作修改,使二者具有不同的值,以获得不同的效果)由用户根据需要改变。上、左边框的色彩为白色(其实为DrawEdge过程中colTopLef决定,可设为其他值)到窗体背景色的渐变,下、右边框的色彩为RGB(132, 132, 132)(其实为DrawEdge过程中colBottomRight所决定,也可设为其他值)到窗体背景色的渐变。
要实现该效果,你的窗体(对任拥有hWnd属性的对象,也一样实用)应作如下设置:
1――BorderStyle=0,
2――ScaleMode=3 (所有GDI类API使用的长度单位都为Pixel,对应于该项的设置)。
3――AutoRedraw=True
主要使用了三个过程:
WindowShape ――'重塑窗体轮廓,入口函数,调用后两个函数
MakeRoundCorner――圆角
DrawEdge ――画外框
以下代码为要实现特效的窗体中的代码:
===============================================================
Private Sub Form_Load()
'调用入口函数实现效果
WindowShape hwnd, hdc, BackColor, ScaleWidth + 1, ScaleHeight + 1, 10
'将窗体置顶,
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
===============================================================
以下为具体实现代码,可置于一个module中:
===============================================================
Option Explicit
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
相关文章
- 致命公司传送器有什么用 传送器作用介绍 12-06
- dota2骑士之倚有什么用 骑士之倚效果介绍 12-06
- 致命公司雷达增强器怎么用 雷达发射器使用教学 12-06
- 恋爱吗我家的猫会后空翻第一章全流程攻略 12-06
- 星球重启球球宠物心愿解锁条件一览 12-06
- 星球重启冰霜琥珀在哪 冰霜琥珀位置一览 12-06