国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

關于Windows2000透明窗體的制作

2019-11-18 18:47:26
字體:
來源:轉載
供稿:網友

哎,剛才洋洋傻傻寫了200多字,竟然提交失敗?!讓人幾近暈倒,只好重寫了。嗯,現在開始..

透明窗體不知注意到沒有?看過的是不是覺得很cool?我是這樣認為的,所以第一次在一個叫SourceInsight的軟件中看到后,就在到處找他是如何做的。后來發現是通過一種圖形運算得到的,就是程序的界面和其底圖進行一定的運算,如alpha運算,就可以得到透明的效果。但寫起來好煩啊。昨天無意見到已很好用的API函數,專門做透明的,很好用,便寫出來,大家看看.

先寫個例子,Delphi的,這個目前最熟了。

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(),這個是Windows2000才有的一個API,所以也只能在2000下運行,Win2000的淡進淡出效果可能就是用的這個函數。

Delphi6已經封裝了這個API,Delphi5的話,就要自己進行函數聲明了,

function SetLayeredWindowAttributes(hwnd:HWND; crKey:Longint; bAlpha:byte; dwFlags:longint ):longint; stdcall; external ‘user32.dll';

現在從MSDN里把它的定義考出來,分析一下。

BOOL SetLayeredWindowAttributes(  HWND hwnd,           // handle to the layered window  COLORREF crKey,      // specifies the color key  BYTE bAlpha,         // value for the blend function  DWord dwFlags        // action);
第一個參數:hwnd是指向要操作的窗口的句柄,沒什么要說的,基本API都需要的.
第二個參數:crKey是指定要透明的顏色的顏色值,這個參數和第四個參數在制定
為LWA_COLORKEY時才有用,在LWA_ALPHA參數下,一般用0;當指定要透明的顏色值時,
窗口中的制定顏色就會變得‘鏤空’!
第三個參數: bAlpha是透明運算的一個參數,簡單地說就是透明度,0最透明,就看不到了,
255不透明,和平常的效果一樣了。
第四個參數:dwFlags由兩個值LWA_COLORKEY和LWA_ALPHA,用于決定用何種方式進行透明處理。
一般用LWA_ALPHA值就可以了.
好了,就這么多了,MSDN里有詳細的介紹。
codejie. 2001/08/31

上一篇:用程序模擬鍵盤和鼠標鍵盤

下一篇:如何制作幫助文件

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 丹凤县| 永顺县| 江西省| 大城县| 双牌县| 麻阳| 蒙城县| 乐平市| 闽清县| 弋阳县| 郴州市| 桐柏县| 泾阳县| 丹巴县| 峨山| 乐至县| 嘉峪关市| 荆州市| 阿尔山市| 珠海市| 剑河县| 榆树市| 耿马| 岱山县| 镇平县| 梓潼县| 策勒县| 隆德县| 宝山区| 酒泉市| 泾源县| 阳山县| 全南县| 历史| 南开区| 黄浦区| 莱阳市| 呼图壁县| 教育| 太湖县| 宁海县|