MFC - 全局访问DocumentView OnDraw(CDC * pDC)方法

时间:2012-02-24 20:09:52

标签: mfc draw ondraw sdi

我有一个MFC SDI应用程序,我想从一个单独的Dialog访问Document区域,所以我可以在上面绘制一些东西。这是我想要访问的内容:

void CProjView :: OnDraw(CDC * pDC)

或者更好,我想直接从对话框中绘制文档视图。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

如果您想在文档中绘制一些内容,而不是文档中的内容。获取指向CDocument类的指针并调用CDocument::UpdateAllViews。它反过来会调用CView::OnUpdate。你将在那里设置一个标志并呼叫Invalidate()OnDraw()现在将使用新对象重绘屏幕,因为您设置了标志,告诉它这样做。

还有其他方法可以抓住客户区的设备上下文并开始绘图,但问题是如果最小化窗口并将其恢复,新的绘画将会丢失。实际上,您在OnDraw()函数之外执行的任何操作都将丢失。因此,你必须在OnDraw()函数中完成所有绘图,上面是如何使用doc / view架构系统地完成它。