由于对话框上的文本控件是在对话框显示后才画上去的,所以用textout直接输出字体会被覆盖。
解决的思路是先让文本控件的背景为透明的;
代码:OnCtlColor为消息
HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(pWnd->GetDlgCtrlID() == IDC_EDIT)
{
pDC->SetBkMode(TRANSPARENT);
CBrush brush;
brush.CreateStockObject(NULL_BRUSH);
return brush;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
然后用白色的画刷去填充文本区域:
代码:
放在onpaint中