• ベストアンサー

最近使ったファイルからファイル名を取得したいです。

現在、VC++、MFC,SDIでプログラムを作成しています。 自動でできるメニュー項目の中に、「最近使ったファイル」というものがあるのですが、 これをクリックすることでタイトルバーがその名前に更新されるようですが、この情報を取得することで ファイル名を出力するにはどうすればよろしいでしょうか? (AfxMessageBoxで出力するだけで大丈夫です)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

MFCのフレームワークをそのまま使っているのであれば、最近使ったファイル(MRU)はレジストリに記録されています。 HKEY_CURRENT_USER\Software\[CWinAppの派生クラスのInitInstanceで設定した名前]\[ソフト名]\Recent File List にリストが入っていると思います。 MFC内部でもこのレジストリを読み取っているので、その辺りを調べたいなら、メニューID(ID_FILE_MRU1だったかな?)からハンドラを調べれば、どのように処理しているかわかるはずです。

gsfgsgshh
質問者

補足

どこでその処理を行っているか具体的に知りたいです。。。

その他の回答 (4)

noname#137556
noname#137556
回答No.5

なんだか、やりたいことが分からなくなってきました。 何をどうしたいのでしょうか? 変更???

回答No.4

CWinAppの派生クラスでメッセージマップを変更すれば、派生クラス側で処理できるはずです。 メッセージマップにどのように記述すればよいかは、CWinAppのメッセージマップを見ればわかりますよね。

回答No.3

ID_FILE_MRU_FILE1~ID_FILE_MRU_FILE16が用意されていて、CWinApp::OnOpenRecentFileで処理されているようです。 これ以上具体的な内容は、VC++のバージョンも示さずに聞く方が間違っています。まぁ、バージョンを示されても、同じバージョンがインストールされている人でないと答えられないので、あまり期待されない方がいいでしょうし。 MFCのソースはマシンに入っているはずなので、ご自分で検索するなりしましょう。

gsfgsgshh
質問者

補足

CWinApp::OnOpenRecentFileじゃAPPで宣言、定義されているので、変更できない気がするのですが・・・。(変更しても反映されない) バージョンは6.0になります。

noname#137556
noname#137556
回答No.1

最近使ったファイルに限らず, ファイルを開くと,ドキュメントクラスの OnOpenDocument が呼ばれるので, 通常はここで処理すれば OK です。 「最近使ったファイル」を選んだ時だけ特別にとなると, コマンドハンドラかその下のどこかを乗っ取ればいいと思います。

関連するQ&A