我打算在非模式对话框中的picture中画图,而这个对话框是由主对话框的按钮触发的,并且画图程序写在::button()中,而不是onPaint中,有些问题要请教:
1:如何在主对话框的::button()中获取picture控件的指针,我用CWnd *pWnd=GetDlgItem(IDC_STATIC_PIC),但出错了。
2;程序运行后若最小化或被其他窗口覆盖后,对话框上的图形会消失,如何解决重画问题呢?

解决方案 »

  1.   

    画图程序写在::button()中??
    绝对不行,窗口重绘了,会怎么样呢?还是应该写在OnPaint中。
      

  2.   

    在对话框函数里用this->GetDC();解决重画问题可以在OnEraseBKGnd()里面重新画图。然后返回true;
      

  3.   

    to: DentistryDoctor(My heart will fly,in the sky.) 
    程序如下:
    void CLineDlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here
       
      CDialog1 *dlg=new CDialog1; //dlg是非模态对话框
      dlg->Create(IDD_DIALOG1,NULL);
      dlg->ShowWindow(SW_SHOW);
     CDC * pDC = dlg->GetDC(); 
     CPen redpen(PS_SOLID,1,RGB(255,0,0));
     pDC->SelectObject(redpen);
     pDC->MoveTo(0,0);
     pDC->LineTo(200,200);
     dlg->ReleaseDC( pDC );
    }
    我试过可以通过button画图的(直接画在对话框中,没有画到picture控件里)
    还是上面的问题没有解决啊