- HBRUSH CTxtReaderDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
- {
- HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
- // TODO: Change any attributes of the DC here
- CBrush m_brush;//色彩刷子.
- m_brush.CreateSolidBrush(RGB(0, 0, 0)); //生成一背景色刷子
- if(pWnd->GetDlgCtrlID() == IDC_EDIT1)
- {
- pDC->SetTextColor(RGB(0, 0, 0)); //文字
- pDC->SetBkMode(TRANSPARENT);
- HBRUSH hBr = CreateSolidBrush(RGB(255,255,255));//背景
- return (HBRUSH) hBr;
- }
- else
- {
- return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
- }
- return hbr;
- }
以上是导致CEDIT显示时,数据多于cedit时,按下滚动条,文字会重叠
主要是因为pDC->SetBkMode(TRANSPARENT); 所致。
将其改为如下即可
- HBRUSH CTxtReaderDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
- {
- HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
- // TODO: Change any attributes of the DC here
- CBrush m_brush;//色彩刷子.
- m_brush.CreateSolidBrush(RGB(0, 0, 0)); //生成一背景色刷子
- if(pWnd->GetDlgCtrlID() == IDC_EDIT1)
- {
- pDC->SetTextColor(RGB(0, 0, 0)); //文字
- pDC->SetBkColor( RGB(255,255,255)); // 改为背景颜色即可
- HBRUSH hBr = CreateSolidBrush(RGB(255,255,255));//背景
- return (HBRUSH) hBr;
- }
- else
- {
- return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
- }
- return hbr;
- }