注意:
在调用SetLayeredWindowAttributes 之前,需要给窗口加上WS_EX_LAYERED属性,否则会无效
void SetLayerTransparent(HWND hWnd) { static bool isTransParent = false; if (isTransParent == false) { DWORD exStyle = ::GetWindowLong(hWnd, GWL_EXSTYLE); exStyle |= WS_EX_LAYERED; ::SetWindowLong(hWnd, GWL_EXSTYLE, exStyle); ::SetLayeredWindowAttributes(hWnd, RGB(0, 0, 0), 128, LWA_ALPHA); isTransParent = true; } else { ::SetLayeredWindowAttributes(hWnd, RGB(0, 0, 0), 255, LWA_ALPHA); isTransParent = false; } }