アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (5件)

MFCのフレームワークをそのまま使っているのであれば、最近使ったファイル(MRU)はレジストリに記録されています。



HKEY_CURRENT_USER\Software\[CWinAppの派生クラスのInitInstanceで設定した名前]\[ソフト名]\Recent File List

にリストが入っていると思います。
MFC内部でもこのレジストリを読み取っているので、その辺りを調べたいなら、メニューID(ID_FILE_MRU1だったかな?)からハンドラを調べれば、どのように処理しているかわかるはずです。

この回答への補足

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

補足日時:2010/12/24 10:49
    • good
    • 0

なんだか、やりたいことが分からなくなってきました。


何をどうしたいのでしょうか?
変更???
    • good
    • 0

CWinAppの派生クラスでメッセージマップを変更すれば、派生クラス側で処理できるはずです。


メッセージマップにどのように記述すればよいかは、CWinAppのメッセージマップを見ればわかりますよね。
    • good
    • 0

ID_FILE_MRU_FILE1~ID_FILE_MRU_FILE16が用意されていて、CWinApp::OnOpenRecentFileで処理されているようです。



これ以上具体的な内容は、VC++のバージョンも示さずに聞く方が間違っています。まぁ、バージョンを示されても、同じバージョンがインストールされている人でないと答えられないので、あまり期待されない方がいいでしょうし。

MFCのソースはマシンに入っているはずなので、ご自分で検索するなりしましょう。

この回答への補足

CWinApp::OnOpenRecentFileじゃAPPで宣言、定義されているので、変更できない気がするのですが・・・。(変更しても反映されない)

バージョンは6.0になります。

補足日時:2010/12/24 11:57
    • good
    • 0

最近使ったファイルに限らず,


ファイルを開くと,ドキュメントクラスの OnOpenDocument が呼ばれるので,
通常はここで処理すれば OK です。

「最近使ったファイル」を選んだ時だけ特別にとなると,
コマンドハンドラかその下のどこかを乗っ取ればいいと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!