我有一个 MFC SDI 应用程序,我想从一个单独的对话框访问文档区域,以便可以在其上绘制一些东西。这是我要访问的内容:
无效 CProjView::OnDraw(CDC* pDC)
或者更好的是,我想直接从对话框中绘制文档视图。我怎样才能做到这一点 ?
如果您想在文档中绘制一些东西,那么它可能应该在您的文档中。获取指向 CDocument 类的指针并调用CDocument::UpdateAllViews。它反过来会调用CView::OnUpdate
. 您将在那里设置一个标志并调用Invalidate()
. 现在OnDraw()
将使用新对象重新绘制屏幕,因为您设置了指示它这样做的标志。
还有其他方法可以获取客户区的设备上下文并开始绘制,但问题是如果您最小化窗口并将其恢复回来,新的绘制将会丢失。事实上,您在 OnDraw() 函数之外所做的任何事情都会丢失。因此,您必须在 OnDraw() 函数中进行所有绘图,以上是如何使用 doc/view 架构系统地进行绘图。