- 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;
- }
本文详细介绍了在CTxtReaderDlg类中修改CEDIT控件背景颜色的方法,以解决文字重叠问题。通过将背景颜色更改为白色,避免了透明背景导致的文字重叠现象。
2206

被折叠的 条评论
为什么被折叠?



