- 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;
- }