在onintdialog里添加如下代码:
//设置窗口透明风格
DWORD dwExStyle = ::GetWindowLong(m_hWnd, GWL_EXSTYLE);
if ((dwExStyle&WS_EX_LAYERED)!=WS_EX_LAYERED)
{
::SetWindowLong(m_hWnd, GWL_EXSTYLE, dwExStyle^WS_EX_LAYERED);
}
::SetLayeredWindowAttributes(m_hWnd,0,m_nAlpha,LWA_ALPHA);
设置控件透明,在此基础上在HBRUSH Cmfc64Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)消息响应里添加如下代码:
if (pWnd == this)
{
return m_brBk;//窗口背景
}
if (nCtlColor == CTLCOLOR_STATIC) //静态文本背景透明
{
pDC->SetBkMode(TRANSPARENT);
hbr=(HBRUSH)GetStockObject(NULL_BRUSH);
}
结果