要實現該效果,你的表單(對任擁有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