在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用來呈現窗體內的控制項,為了避免窗體內的控制項變成...