创建透明窗口
hWnd:窗口句柄;nDegree:透明程度
void TranslateWnd(HWND hWnd, int nDegree)
{
::SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE); // TopMost
DWORD dwStyle = GetWindowLong(hWnd, GWL_EXSTYLE);
::SetWindowLong(hWnd, GWL_EXSTYLE, dwStyle^WS_EX_LAYERED);
HINSTANCE hInst = LoadLibrary(_T("User32.DLL"));
if (hInst)
{
typedef BOOL (WINAPI *MYFUNC)(HWND, COLORREF, BYTE, DWORD);
MYFUNC pFun = NULL;
// 取得SetLayeredWindowAttributes函数指针
pFun = (MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
if (pFun) // 128为透明值
{
pFun(hWnd, 0, nDegree, LWA_ALPHA);
}
FreeLibrary(hInst);
}
}