透明框架視窗

2021-08-22 09:45:27 字數 805 閱讀 9327

如何讓整個視窗具有透明效果呢?

使用如下的類:

// 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 ...