我创建了一个应用程序可以载入图象文件,但当我点击FILE菜单下MRU文件列表时,却不能从磁盘载入以前曾经打开过的文件.
下面是我所能想到的解决方案:
(1)在文档类中定义一个成员函数(例如:CMyDoc::Reopen)来处理重新打开这个问题,指明参数和返回值.
(2)产生一个CMultiDocTemplate的继承类(如CMyDocTemplate),定义一个构造函数,取和基类相同的参数,不做任何事,只是调用基类的构造函数.
(3)重载MatchDocType:
CMyDocTemplate::Confidence CMyDocTemplate::MatchDocType(
LPCTSTR lpszPath,
CDocument *&rpDocMatch
)
{
Confidence match = CMultiDocTemplate::MatchDocType(lpszPath, rpDocMatch);
if(yesAlreadyOpen == match) // clear enough
{
ASSERT_KINDOF(CMyDoc, rpDocMatch);
((CMyDoc *) rpDocMatch)->Reopen(/* your parameters */);
// you can take any other actions here...
}
return match;
}
当这个函数返回"yesAlreadyOpen"时,你的文档框架将会被激活.
|