MFC半透明对话与黑色背景

时间:2015-07-01 05:40:26

标签: mfc overlay translucency

我想实现这样的对话。当它弹出时,其父窗口的背景颜色将变暗或被遮盖。所以我所做的是定义另一个半透明窗口。

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是一个黑色画笔。但半透明窗口消失了。所以你知道我需要什么吗?半透明的窗户,但半透明的黑色背景色。

1 个答案:

答案 0 :(得分:1)

我自己做。只需要修改一个参数。

SetLayeredWindowAttributes(RGB(0,0,0), 128, LWA_ALPHA);

我太蠢了。