SetLayeredWindowAttributes原型 MSDN
BOOL SetLayeredWindowAttributes(
HWND hwnd,
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags
);
1.窗口完全透明
在 OnInitDialog 里添加
LONG nExStyle = ::GetWindowLong(m_hWnd, GWL_EXSTYLE);
nExStyle |= WS_EX_LAYERED;
::SetWindowLong(m_hWnd, GWL_EXSTYLE, nExStyle);
SetLayeredWindowAttributes(m_hWnd, RGB(1,2,3), 128, LWA_ALPHA);
此时第二个参数无效,效果由第三个参数指定 ,0为完全透明,255为完全不透明
2.指定颜色透明
在 OnInitDialog 里添加
LONG nExStyle = ::GetWindowLong(m_hWnd, GWL_EXSTYLE);
nExStyle |= WS_EX_LAYERED;
::SetWindowLong(m_hWnd, GWL_EXSTYLE, nExStyle);
SetLayeredWindowAttributes(m_hWnd, RGB(1,2,3), 128, LWA_COLORKEY);
此时第三个参数无效,窗口里的所有颜色为RGB(1,2,3)的区域都将透明