qq_29670983
2015-08-20 01:16
采纳率: 43.1%
浏览 1.9k

请教一个MFC填充背景色的问题

BOOL C2Dlg::OnEraseBkgnd(CDC* pDC)
{
GetWindowRect(rect);

pDC->SelectObject(fff);

pDC->Rectangle(rect);
return CDialogEx::OnEraseBkgnd(pDC);

}
我想一调试程序就背景显示指定的颜色,用CCLIENTDC可以,但是用这个函数传进来的
PDC好像不行,请问下是为什么呀?CBRUSH fff已经在初始化函数中定义了。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qq_19242821 2015-08-20 02:02

    试下这个:
    GetWindowRect(rect);
    //转成屏幕坐标
    ClientToScreen(rect);

    CWnd* pWnd = pDC->GetWindow();

    pWnd->ScreenToClient(rect);

    pDC->SelectObject(fff);

    pDC->Rectangle(rect);
    return CDialogEx::OnEraseBkgnd(pDC);

    打赏 评论
  • putaoaa 2015-08-21 02:16

    为什么不在onpaint里面画呢

    打赏 评论
  • 零度永恒 2015-08-23 09:32

    BOOL rt = CDialogEx::OnEraseBkgnd(pDC);

    GetWindowRect(rect);
    CBrush br(RGB(0x00, 0x0F, 0xFF));
    CBrush *pOldBr = pDC->SelectObject(&rb);
    pDC->Rectangle(rect);
    pDC->SelectObject(pOldBr);

    return rt;
    试试

    打赏 评论

相关推荐 更多相似问题