引用:
作者: 魔術王子
|
以前曾用VB6玩過
不規則+漸層 的窗體 (像開啟繪圖軟體CorelDRAW時的漂亮初始視窗)
其中最主要的 WinAPI是SetLayeredWindowAttributes
PHP 語法:
Public Const WS_EX_LAYERED = &H80000
Public Const GWL_EXSTYLE = (-20) '窗體擴展式樣
Public Const LWA_ALPHA = &H2 '透明度
Public Const LWA_COLORKEY = &H1
Public Const LWA_COLORKEY_ALPHA = &H3 '透明+異形
Public Declare Auto Function SetLayeredWindowAttributes Lib "User32.Dll" ( _
ByVal hWnd As IntPtr, _
ByVal crKey As Integer, _
ByVal Alpha As Byte, _
ByVal dwFlags As Integer) As Boolean
'hwnd是透明窗體的句柄,crKey為顏色值
'bAlpha是透明度,取值範圍是[0,255],
'dwFlags是透明方式,可以取兩個值:當取值為LWA_ALPHA時,crKey參數無效,bAlpha參數有效;
'當取值為LWA_COLORKEY時,bAlpha參數有效而窗體中的所有顏色為crKey的地方將變為透明--這個功能很有用:
現在
在VB.NET裡要做到不規則+透明感 則很簡單 (直接有屬性可控制)
但
要做 有漸層效果就要先製作一個
單一色彩的漸層背景圖 (灰階色彩)
用邏輯旗標做結合 後 輸出