WEB开发网
开发学院软件开发VC VC 和 MFC 的一些常见问题 阅读

VC 和 MFC 的一些常见问题

 2007-03-30 21:32:12 来源:WEB开发网   
核心提示: 如何在MDI程序中得到所有的视图?你必须用一些文档中没有记载的函数:CDocument::GetFirstViewPosition(); // DOCCORE.CPPCDocument::GetNextView(); // DOCCORE.CPPCMultiDocTemplate::Get

如何在MDI程序中得到所有的视图?

你必须用一些文档中没有记载的函数:

 CDocument::GetFirstViewPosition(); // DOCCORE.CPP
 CDocument::GetNextView(); // DOCCORE.CPP
 CMultiDocTemplate::GetFirstDocPosition(); // DOCMULTI.CPP
 CMultiDocTemplate::GetNextDoc(); // DOCMULTI.CPP

你还需要与CWinApp的成员m_templateList打交道。

注意:在MFC 版本4.0中已改变。现在已经有一个叫CDocManager的类可以帮助你显示所有的视图和文档。请参考《MFC Internals》获得更详细的信息。

如何建立一个可用鼠标拉动的CScrollView类

在CIS上从MSMFC库下载AUTOSV.LZH。这个程序告诉你如何实现一个辅助消息循环来管理鼠标的活动,并提供了钩挂来对代码进行定制。这是一个免费软件。

一定要用视图/文档结构吗?

MFC并不一定要求你使用文档/视图结构。查看HELLO、 MDI和HELLOAPP例子―它们就没有用那种结构。大多数MFC特性都可以在非文档/视图应用程序中得到运用。但是当你不用文档 / 视图结构时,你确实会失去一些特性,例如打印预览和许多OLE特性。

如何得到当前文档?

请详细参阅"如何得到当前视图?"章节。

文档何时被析构?

在SDI程序中,程序退出后文档就被删除。在MDI程序中,与该文档相关的最后一个视图关闭时文档就被删除。为了在SDI和MDI中同时用这个文档,你应该在虚函数DeleteContents()函数中删除该文档的数据,而不是在析构器中。

如何建立多文档?

为了加入对附加文档类型的支持,你可以在CWinApp派生类中创建和注册附加CmultiDocTemplate对象。这种方法已经在MULTDOCS样例程序中得以说明。将一个附加文档类型加入到MFC程序的一般步骤如下:

上一页  1 2 3 4 5 6 7  下一页

Tags:VC MFC 一些

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接