透明窗体实现 - C++ & MFC & API
1、创建一个基于对话框的MFC EXE
2、在对话框的 OnInitDialog 函数 中,设置对话框扩展属性 为:WS_EX_LAYERED
const WS_EX_LAYERED = 0x80000;
::SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,
GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|WS_EX_LAYERED);
3、在对话框的 OnInitDialog 函数 中,设置对话框透明
HINSTANCE hInst;
const LWA_COLORKEY = 0x00001;
const LWA_ALPHA = 0x00002;
typedef BOOL (WINAPI *FSetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD);
FSetLayeredWindowAttributes SetLayeredWindowAttributes;
hInst = LoadLibrary("User32.dll");
SetLayeredWindowAttributes = (FSetLayeredWindowAttributes)
GetProcAddress(hInst,"SetLayeredWindowAttributes");
SetLayeredWindowAttributes(GetSafeHwnd(),RGB(0,0,0),150,LWA_ALPHA);
FreeLibrary(hInst);