index130.htm

来自「一本不错的VC编程的参考书」· HTM 代码 · 共 42 行

HTM
42
字号
<html>
<style type="text/css"><!--
.p9 {  font-family: "宋体"; font-size: 9pt}a        {text-transform: none; text-decoration: none;}
a:hover {text-decoration: underline; color: #FF0000;}
--></style>
<body background="../di2001.jpg">
<h3 align="center"><font COLOR="#AOAO99"></font></h3>
<table width="100%" border="1" cellspacing="1">
<tr><td><p align="center"><font color="#FF0000">如何重载MRU文件?</font></td></tr>
<tr><td><p>
</Br>
我创建了一个应用程序可以载入图象文件,但当我点击FILE菜单下MRU文件列表时,却不能从磁盘载入以前曾经打开过的文件.<Br>
</Br>
下面是我所能想到的解决方案:<Br>
(1)在文档类中定义一个成员函数(例如:CMyDoc::Reopen)来处理重新打开这个问题,指明参数和返回值.<Br>
(2)产生一个CMultiDocTemplate的继承类(如CMyDocTemplate),定义一个构造函数,取和基类相同的参数,不做任何事,只是调用基类的构造函数.<Br>
(3)重载MatchDocType:<Br>
CMyDocTemplate::Confidence CMyDocTemplate::MatchDocType(<Br>
&nbsp;&nbsp;&nbsp;&nbsp;LPCTSTR lpszPath,<Br>
&nbsp;&nbsp;&nbsp;&nbsp;CDocument *&rpDocMatch<Br>
&nbsp;&nbsp;&nbsp;&nbsp;)<Br>
{<Br>
&nbsp;&nbsp;&nbsp;&nbsp;Confidence match = CMultiDocTemplate::MatchDocType(lpszPath, rpDocMatch);<Br>
</Br>
&nbsp;&nbsp;&nbsp;&nbsp;if(yesAlreadyOpen == match) // clear enough<Br>
&nbsp;&nbsp;&nbsp;&nbsp;{<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ASSERT_KINDOF(CMyDoc, rpDocMatch);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((CMyDoc *) rpDocMatch)->Reopen(/* your parameters */);<Br>
</Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// you can take any other actions here...<Br>
&nbsp;&nbsp;&nbsp;&nbsp;}<Br>
</Br>
&nbsp;&nbsp;&nbsp;&nbsp;return match;<Br>
}<Br>
当这个函数返回"yesAlreadyOpen"时,你的文档框架将会被激活.<Br>
</Br>
</Br>
</Br>
</p></td></tr>
</table>
</body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?