查看單個文章
舊 2018-11-12, 10:35 AM   #3 (permalink)
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時級別:96 | 在線時長:9665小時 | 升級還需:132小時
註冊日期: 2002-12-07
文章: 13249
精華: 0
現金: 26241 金幣
資產: 3024051 金幣
預設

引用:
作者: 魔術王子 查看文章
https://drive.google.com/file/d/1G7M...ew?usp=sharing
不規則形狀視窗設計分享
展示魔術部分並沒修改,就不分享了,節省下載時間
以前曾用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裡要做到不規則+透明感 則很簡單 (直接有屬性可控制)

要做 有漸層效果就要先製作一個
單一色彩的漸層背景圖 (灰階色彩)
用邏輯旗標做結合 後 輸出

此帖於 2018-11-12 03:24 PM 被 mini 編輯.
mini 目前離線  
送花文章: 1999, 收花文章: 7957 篇, 收花: 26749 次
回覆時引用此帖
向 mini 送花的會員:
魔術王子 (2018-11-12)
感謝您發表一篇好文章