我想在对话框的某个Group Box控件的内部区域作图我用GetDlgItem(IDC_RESULT_TITLE)->GetClientRect(&rect);得到了它的区域后
在使用pDC->MoveTo(rect.left+width/2,rect.top+height/2);这个命令的时候出错请问是怎么回事?

解决方案 »

  1.   

    pDC从哪里来的?
    width和height从哪里来的?
    你这段程序在哪里写的?
    你最好贴全了。
      

  2.   

    void CXXXXXDlg::OnShowCurve(CDC *pDC) 
    {
    // TODO: Add your control notification handler code here
    CRect rect;
    int width,height;
    POINT m_point;
    CPen * pOldPen = NULL;
    CPen pen1;
    COLORREF m_text1Color; m_text1Color = RGB(0,0,255);
    pen1.CreatePen(PS_SOLID,1,m_text1Color);
    GetDlgItem(IDC_RESULT_TITLE)->GetClientRect(&rect);
    width = rect.right - rect.left;
    height = rect.top - rect.bottom;
    m_point.x=rect.left+width/2;
    m_point.y=rect.top+height/2;
    pOldPen = pDC->SelectObject(&pen1);
    pDC->MoveTo(m_point);
    pDC->LineTo(rect.bottom,rect.right);
    pDC->SelectObject(pOldPen);

    }
      

  3.   

    这个PDC不是GroupBox的pDC,而是对话框的pDC,你用
    pDCGroup = GetDlgItem(IDC_RESULT_TITLE)->GetDC();
    在试试看?
      

  4.   

    我解决了
    原来还是需要用GetDC()来获取DC郁闷不过似乎
    那些点的位置不对,请问怎么精确的在Group Box的里面做图
      

  5.   

    把这段代码放到OnPaint()或OnDraw()中就行了。
      

  6.   

    height = rect.bottom - rect.top //注意默认坐标Y轴是向下增大的。