CRect rect;
GetClientRect(&rect);
CRect rect2(0,0,rect.Width()/2,rect.Height()/2);
CBrush brush;
brush.CreateSolidBrush(RGB(255,0,0));
pDC->FillRect(rect2,&brush);我是想给半个客户区涂颜色的,怎么不行呢?

解决方案 »

  1.   

    CRect rect;
    GetClientRect(&rect);
    CRect rect2(0,0,rect.Width()/2,rect.Height()/2);
    CBrush brush;
             pDC->SelectObject(brush); //加上这一句
    brush.CreateSolidBrush(RGB(255,0,0));
    pDC->FillRect(rect2,&brush);
      

  2.   

    CRect rect;
    GetClientRect(&rect);
    CRect rect2(0,0,rect.Width()/2,rect.Height()/2);
    CBrush brush;
    brush.CreateSolidBrush(RGB(255,0,0));
             pDC->SelectObject(brush); //加上这一句
    pDC->FillRect(rect2,&brush);
    上面写错了
      

  3.   

    又错了
             CRect rect;
    GetClientRect(&rect);
    CRect rect2(0,0,rect.Width()/2,rect.Height()/2);
    CBrush brush;
    brush.CreateSolidBrush(RGB(255,0,0));
    pDC->FillRect(rect2,&brush);
    你是对的可能你的pDC指向改为
             CClientDC dc(this);
             CRect rect;
    GetClientRect(&rect);
    CRect rect2(0,0,rect.Width()/2,rect.Height()/2);
    CBrush brush;
    brush.CreateSolidBrush(RGB(255,0,0));
    dc.FillRect(rect2,&brush);
      

  4.   

    问题解决了,不过又有个问题:
    为什么用CDC不行,非要有CClientDC呢?