我可以从对话框MFC调用单个文档MFC吗?

我可以从对话框MFC调用单个文档MFC吗?,mfc,Mfc,我必须在对话框mfc中绘制一些东西,所以,我可以从主对话框调用单个文档(因为我知道如何在单个文档mfc中绘制)吗? thnx您可以在CView和CDialog中使用相同的图形代码 在CView上绘图工作如下: void CMyView::OnDraw(CDC* pdc) { // Draw something on pdc Draw(pdc); } void CMyDialog::OnPaint() { CPaintDC dc(this); CPaintDC*

我必须在对话框mfc中绘制一些东西,所以,我可以从主对话框调用单个文档(因为我知道如何在单个文档mfc中绘制)吗?
thnx

您可以在
CView
CDialog
中使用相同的图形代码

CView上
绘图工作如下:

void CMyView::OnDraw(CDC* pdc)
{
    // Draw something on pdc
    Draw(pdc);
}
void CMyDialog::OnPaint()
{
    CPaintDC dc(this);
    CPaintDC* pdc = &dc;
    CDialog::OnPaint();
    // Draw something on pdc
    Draw(pdc);
}
CDialog
中,重写
OnPaint()
处理程序,并如下所示绘制:

void CMyView::OnDraw(CDC* pdc)
{
    // Draw something on pdc
    Draw(pdc);
}
void CMyDialog::OnPaint()
{
    CPaintDC dc(this);
    CPaintDC* pdc = &dc;
    CDialog::OnPaint();
    // Draw something on pdc
    Draw(pdc);
}

使用从CStatic派生的窗口,而不是对话框中的视图,并将其设置为OnSize上对话框的大小。这比在对话框中添加视图要好

必须重写静态控件的OnPaint()事件。要避免闪烁,必须重写OnEraseBkgrnd()事件