如何製作透明窗體

2021-05-27 10:04:47 字數 869 閱讀 3073

在oninitdialog()中新增:

modifystyleex(0,ws_ex_layered);

setlayeredwindowattributes( rgb(255,0,255), 255, lwa_colorkey | lwa_alpha);

第乙個引數控制哪種顏色透明,第二個引數為其他顏色的透明度。

設定窗體樣式還有一種方法:

dword dwexstyle=getwindowlong(this->m_hwnd,gwl_exstyle);

if((dwexstyle&ws_ex_layered )!=ws_ex_layered )

setwindowlong(this->m_hwnd,gwl_exstyle,dwexstyle^(ws_ex_layered) );//設定窗體樣式

函式原型:

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

);

lwa_alpha被設定的話,通過balpha決定透明度。

lwa_colorkey被設定的話,則指定被透明掉的顏色為crkey,其他顏色則正常顯示。

VC 製作透明窗體

在2000下 定義常量 define ws ex layered 0x00080000 define lwa alpha 0x00000002 宣告函式 extern c 標頭檔案 產生透明視窗 不要忘了給視窗的exstyle加入ws ex layered屬性 setwindowlong getsa...

如何用VB製作半透明窗體?

函式setlayeredwindowattributes 使用這個函式,可以輕鬆的實現半透明窗體。按照微軟的要求,透明窗體窗體在建立時應使用ws ex layered引數 用createwindowex 或者在建立後設定該引數 用setwindowlong 我選用後者。全部函式 常量宣告如下 pri...

WPF透明窗體製作

先上效果圖 如下 注 圖中window標籤的name屬性是w。其中border用來實現透明效果,grid用來呈現窗體內的控制項,為了避免窗體內的控制項變成透明的,所以border,grid必須處在同一級別上。其中border用來實現透明效果,grid用來呈現窗體內的控制項,為了避免窗體內的控制項變成...