如何讓整個視窗具有透明效果呢?
使用如下的類:
// class clayeredimpl
// layered window
template
class
atl_no_vtable clayeredimpl
virtual ~clayeredimpl()
long setlayeredstyle()
bool setlayeredattr(colorref crkey, byte balpha, dword dwflags)
bool updatelayered(hdc hdcdst, point *pptdst, size *psize,
hdc hdcsrc, point *pptsrc, colorref crkey, blendfunction *pblend,
dword dwflags)
bool getlayeredattr(colorref *pcrkey, byte *pbalpha, dword *pdwflags)
}; 我們的框架視窗類派生自該類,並且把框架視窗類作為其中的模板引數傳遞。
setlayeredstyle修改視窗的擴充套件風格。setlayeredattr設定透明規則,具體引數用法可以參見setlayeredwindowattributes用法。
在框架視窗的
oncreate函式中呼叫這兩個成員函式即可。請注意,在stdafx.h中設定巨集
#define
_win32_winnt 0x0500
。
使視窗透明
define lwa colorkey 0x00000001 use color as the transparency color.define ws ex layered 0x00080000 define lwa alpha 2 use balpha to determine the opac...
directx 透明視窗
第一步 新增類class cuimagedc hbitmap getbmphandle void dword getbits void protected hbitmap m hbmp hdc m hdc char m pbits cuimagedc cuimagedc cuimagedc cuim...
超酷透明視窗
本文分析了windows環境下使用mfc實現透明視窗,以及浮動視窗的方法 win2000以上作業系統,vc 6.0。如何實現透明視窗 setlayeredwindowattributes的函式原型如下 bool setlayeredwindowattributes hwnd hwnd,handle ...