Static 控件,radio 控件都能很好的透明,直接在Onc 中使用如下代码,就可以解决,
HBRUSH CWinpePwdDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
UINT nID = pWnd->GetDlgCtrlID();
if (IDC_STATIC == nID
|| IDC_STATIC_TIP == nID
|| IDC_CHECK_INPUT_PASSWORD == nID)
{
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
return hbr;
}
但是Checkbox 则不行,出现黑黑的一块。
Checkbox 在以前是可以的,就是没有使用xp样式时,用上面的代码就可以做到透明,但使用xp样式后就出现黑黑的一块了。不知微软咋搞的, 越来越退步了。
在使用xp风格的情况下,解决方法:(1)把Checkbox缩至最小,然后用static 控件来添加文本描述。(2)花点时间重绘控件了。