關於Windows2000透明窗體的製作(重發) (轉)
哎,剛才洋洋傻傻寫了200多字,竟然提交失敗?!讓人幾近暈倒,只好重寫了。嗯,現在開始..
透明窗體不知注意到沒有?看過的是不是覺得很cool?我是這樣認為的,所以第一次在一個叫Insight的中看到後,就在到處找他是如何做的。後來發現是透過一種圖形運算得到的,就是的介面和其底圖進行一定的運算,如alpha運算,就可以得到透明的效果。但寫起來好煩啊。昨天無意見到已很好用的,專門做透明的,很好用,便寫出來,大家看看.
先寫個例子,的,這個目前最熟了。
procedure DoTrans();
var
l: LongInt;
begin
l := GetWindowLong(Handle, GWL_EXSTYLE);
l := l or WS_EX_LAYERED;
SetWindowLong(Handle, GWL_EXSTYLE, l);
SetLayeredWindowAttributes(Handle, 0, 125, LWA_ALPHA);
end;
你可以先試試,應該很好用的,關鍵就是API函式SetLayeredWindowAttributes(),這個是2000才有的一個API,所以也只能在2000下執行,的淡進淡出效果可能就是用的這個函式。
Delphi6已經封裝了這個API,Delphi5的話,就要自己進行函式宣告瞭,
function SetLayeredWindowAttributes(hwnd:HWND; crKey:Longint; bAlpha:byte; dwFlags:longint ):longint; stdcall; external ‘user32.dll';
現在從MSDN裡把它的定義考出來,分析一下。
BOOL SetLayeredWindowAttributes( HWND , // handle to the layered window COLORREF , // specifies the color key BYTE , // value for the blend function D // action );
第一個引數:hwnd是指向要操作的視窗的控制程式碼,沒什麼要說的,基本API都需要的.
第二個引數:crKey是指定要透明的顏色的顏色值,這個引數和第四個引數在制定
為LWA_COLORKEY時才有用,在LWA_ALPHA引數下,一般用0;當指定要透明的顏色值時,
視窗中的制定顏色就會變得‘鏤空’!
第三個引數: bAlpha是透明運算的一個引數,簡單地說就是透明度,0最透明,就看不到了,
255不透明,和平常的效果一樣了。
第四個引數:dwFlags由兩個值LWA_COLORKEY和LWA_ALPHA,用於決定用何種方式進行透明處理。
一般用LWA_ALPHA值就可以了.
好了,就這麼多了,MSDN裡有詳細的介紹。
codejie. 2001/08/31
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1006877/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Windows2000 啟動光碟製作(轉)Windows
- BCB 窗體透明控制元件 (轉)控制元件
- aardio 背景透明的3種方式(透明窗體1 webview2,透明窗體2-win-region-bitmap,透明窗體3-winform-transparent-color)WebViewORM
- 關於單機遊戲製作中的物件重用問題(轉)遊戲物件
- 關於Autolayout製作動畫的坑動畫
- 關於視窗的操作詳談 (轉)
- WebGL半透明物體的繪製Web
- 軟體開發丨關於軟體重構的靈魂四問
- C# 如何重複呼叫父窗體中的子窗體C#
- Simple WPF: WPF 透明窗體和滑鼠事件穿透事件穿透
- 透明背景的開/關設定 (轉)
- 帶有半透明遮罩層可關閉視窗遮罩
- 關於IOS製作p12證書的方法iOS
- 製作一個自己的軟體包CD(轉)
- emacs視窗半透明Mac
- 關於埠轉發
- 中國遊戲行業市場分析(一)關於國內遊戲製作的問題 (轉)遊戲行業
- 父窗體、子窗體關係設定
- Linux發行版製作指南(轉)Linux
- 利用DOTNETBAR製作圓角窗體和圓角控制元件控制元件
- 使用Unity製作起霧的窗戶效果著色器Unity
- 解除DLSupCBT的NAG窗和KEY檔案製作(一)
- 關於軟體複用的思考 (轉)
- 對於Web開發很有用的jQuery效果製作教程WebjQuery
- Flutter 重構:基於 PopupRoute 的極簡彈窗Flutter
- 直播平臺原始碼,窗體透明的,黑暗度等的設定技巧原始碼
- 森林鏈系統軟體開發製作
- 基於窗體設計器的企業管理軟體開發工具
- three.js 製作邏輯轉體遊戲(下)JS遊戲
- three.js 製作邏輯轉體遊戲(上)JS遊戲
- 利用ATL製作程式多媒體封面元件 (轉)元件
- 關於中國和中國軟體發展的一些思考 (轉)
- GAMEHACK 2021 紀實:關於中國遊戲製作的百態GAM遊戲
- 遊戲製作相關---HAM教程翻譯本(五)(轉)遊戲
- 遊戲製作相關---HAM教程翻譯本(四)(轉)遊戲
- 使用C#開啟新視窗關閉舊視窗的方法;winform中防止重複開啟多個相同子窗體C#ORM
- 作為國內最專業的軟體研發頻道,提供關於軟體研發程式語言
- 關於多個開發中心開發同一軟體的配置管理(轉)