解决方案 »

  1.   

    你画了半天,最后被CDialogEx::OnPaint();一句就干掉了。
    另外,既然是在pic上画图,那这些画图的处理最好是派生个static的子类来处理,重载它的OnPaint来画你的线条。不要交给对话框类来处理。
      

  2.   

    void CBezierDlg::OnPaint()
    {
        if (IsIconic())
        {
            CPaintDC dc(this); // 用于绘制的设备上下文
     
            SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
     
            // 使图标在工作区矩形中居中
            int cxIcon = GetSystemMetrics(SM_CXICON);
            int cyIcon = GetSystemMetrics(SM_CYICON);
            CRect rect;
            GetClientRect(&rect);
            int x = (rect.Width() - cxIcon + 1) / 2;
            int y = (rect.Height() - cyIcon + 1) / 2;
     
            // 绘制图标
            dc.DrawIcon(x, y, m_hIcon);
        }
        else
        {
          CDialogEx::OnPaint();
            CDC *pDC;
            pDC = m_picShow.GetDC();
            CPen Pen(PS_SOLID,2,RGB(0,255,0));
            CPen *oldPen = pDC->SelectObject(&Pen);
            pDC->MoveTo(500,100);
            pDC->LineTo(600,100);
            pDC->SelectObject(oldPen);;
     
      
        }
     
    }
      

  3.   

    void CBezierDlg::OnPaint()
    {
        if (IsIconic())
        {
            CPaintDC dc(this); // 用于绘制的设备上下文
     
            SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
     
            // 使图标在工作区矩形中居中
            int cxIcon = GetSystemMetrics(SM_CXICON);
            int cyIcon = GetSystemMetrics(SM_CYICON);
            CRect rect;
            GetClientRect(&rect);
            int x = (rect.Width() - cxIcon + 1) / 2;
            int y = (rect.Height() - cyIcon + 1) / 2;
     
            // 绘制图标
            dc.DrawIcon(x, y, m_hIcon);
        }
        else
        {
            CDialogEx::OnPaint();
        }
            //放在这里
            CDC *pDC;
            pDC = m_picShow.GetDC();
            CPen Pen(PS_SOLID,2,RGB(0,255,0));
            CPen *oldPen = pDC->SelectObject(&Pen);
            pDC->MoveTo(500,100);
            pDC->LineTo(600,100);
            pDC->SelectObject(oldPen);

    }