关于VC SDI中怎么利用mru打开最近打开文件的有关问题

关于VC SDI中如何利用mru打开最近打开文件的问题?
请教:
1. SDI或MDI中 “文件->打开”菜单的响应在哪里?如何得到打开文件的路径?如何在OnFileOpen()里调用其它的函数?
2. 在SDI中,构造和析构只在窗口出现和销毁时才自动执行,那么我从mru中选择的最近打开的文件如何才能把上次的资源释放掉,又如何为本次打开的文件再分配资源?
3. 如果用MDI来做关于mru的应用处理是不是比SDI更简单,或是用SDI根本不能完成mru的处理?

------解决方案--------------------
参考例子:
http://www.codeproject.com/docview/most_recent_used.asp
------解决方案--------------------
1 不是很懂你的意思,一般OnFileOpen是放在C...App类中响应的。
2 在CDocument::DeleteContents()重载函数中释放资源,在CDocument::OnNewDocument()和CDocument::OnOpenDocument()重载函数中分配资源。
------解决方案--------------------
你可以在资源文件的字符串中添加一个AFX_IDS_ALLFILTER,定义成你想要的类型就可以了,
------解决方案--------------------
那么我从mru中选择的最近打开的文件如何才能把上次的资源释放掉,又如何为本次打开的文件再分配资源? 
-------------
选择发生时有处理函数吧?就在这个处理函数释中放上次资源,然后为本次文件再分配资源。你分配什么样的资源?
------解决方案--------------------
http://www.chinabyte.com/20020325/1603446.shtml
LZ可以按照这个方法修改一下
------解决方案--------------------
不太懂这里“资源释放”的意思和要求,

关键是重载,MFC只不过提供了一种构架,很多都写在内部,代码是看不到的。
你用它的形式觉得不符合,就需要重载里面的东西。

两个地方
1。如基本的“资源释放”不能符合你的要求,在需要重载的地方添加你的代码。

2。重载内部的OnFileOpen或OnFileSave之类的函数
打开文件时,在files filter的地方添加:
"BMP Files (*.BMP)|*.BMP|JPG Files (*.JPG)|*.jpg||"
之类的代码

要是觉得这么做麻烦,还不如抛弃架构给的,自己写这种文件存取代码。
用CFileDialog
------解决方案--------------------
选择发生时,肯定会执行CDocument的OnOpenDocument,一般的删除工作可以放在CDocument::DeleteContents(),这个框架会自动地调用的。