我想实现这样的对话。当它弹出时,其父窗口的背景颜色将变暗或被遮盖。所以我所做的是定义另一个半透明窗口。
SetWindowLong(m_hWnd, GWL_EXSTYLE, GetWindowLong(m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
this->SetLayeredWindowAttributes(RGB(0,0,0), 128, LWA_COLORKEY);
但半透明的窗户颜色是默认的窗户颜色。我希望它变黑。所以我在
中画了背景黑色HBRUSH CDlgOverlay::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
return bkBrush;
}
bkBrush是一个黑色画笔。但半透明窗口消失了。所以你知道我需要什么吗?半透明的窗户,但半透明的黑色背景色。
答案 0 :(得分:1)
我自己做。只需要修改一个参数。
SetLayeredWindowAttributes(RGB(0,0,0), 128, LWA_ALPHA);
我太蠢了。