win32下實現透明視窗

2021-06-27 15:50:39 字數 1265 閱讀 5480

#define ws_ex_layered           0x00080000

#define lwa_colorkey 0x00000001

#define lwa_alpha 0x00000002

class ctransparent

;hinstance ctransparent::m_hinstance = null;

tranfunc ctransparent::m_pfunc = null;

bool ctransparent::initialized = false;

//// construction/destruction

//bool ctransparent::loaduser32dll()}}

return bret ;

}bool ctransparent::changetransparency(hwnd hwnd, colorref crkey, uint balpha, dword dwflags)

return bret;

}bool ctransparent::freeuser32dll()

return true;

}bool ctransparent::settransparentwnd(hwnd hwnd, colorref crkey, uint calpha, bool dwflags)

else

return bret;

}

在這裡呼叫這個靜態方法即可.

hwnd m_hmywnd = ::createwindow(l"loginwnddll", l"trawnd", ws_popup,

(int)((xres - m_wndwidth) / 2), (int)((yres - m_wndheight) / 2), m_wndwidth, m_wndheight, 0, 0, hinst, 0);

//在這裡註冊乙個視窗第三個引數表示視窗的型別

ctransparent::settransparentwnd((hwnd)m_hmywnd, 0xffffff, 200, 2); //設定視窗透明

::showwindow(m_hmywnd, sw_show);

實際上上面這個類使用了動態呼叫user32.dll中的setlayeredwindowattributes函式,通過這個函式來實現視窗透明方式,這個方法與網上的大多數方法類似,不過是加了乙個類進行了封裝

win32視窗樣式

private const gwl style 16 視窗樣式 private sub command1 click orstyle end sub private sub orstyle dim lstyle as long lstyle getwindowlong me.hwnd,gwl sty...

WIN32視窗建立

win32視窗建立過程 1 定義視窗類 在msdn中找到函式原型 winmain 2 定義視窗處理函式 在msdn中找到原型 windowproc 3 設計視窗類 4 註冊視窗類 registerclass registerclas 5 建立視窗 createwindow createwindowe...

win32繪製視窗

static int cxclient,cyclient 宣告兩個變數存放滑鼠 x,y 座標.在下面,我們為這兩項賦值時,loword lparam 代表取 lparam 的低 16 位,hiword lparam 代表取lparam 的高 16 位,在 lparam 中存放的實際就是滑鼠的位置,低...