Visual Studio 2008 でプログラムを作っています。
数多くのファイル名で保存しているファイルを開いたときに、そのファイル名をタイトルバーに表示したい。
メニューからファイルを開くか、最近使ったファイル一覧のファイルを読み込むと、ID_FILE_OPENなどのイベントが発生し、CWinAppが勝手にダイアログを表示してファイル読み込みが出来ます。 でも、現在、、どのファイル名を開いたのか、タイトルバーまたはエディットボックスに表示されると便利です。
CWinAppの中から、今開いているファイル名を取得するにはどうすれば好いのでしょうか?
> CWinAppの中から、今開いているファイル名を取得するにはどうすれば
詳しく説明しないが、CWinAppからそれを取得するのは結構しんどい。
ドキュメント/ビューアーキテクチャーのプログラムからならばCViewから
たどることによってそれを取得するほうが簡単。
CView::GetDocument()を使ってCDocumentのポインタを取得して
CDocument::GetPathName()でファイル名が取れる。
というよりファイル読み込みをやっている場所 CDocment::OnOpenDocument
で自分の表示したい場所に表示するようにオーバーライドすればいいん
じゃないの?
まずはドキュメント/ビューアーキテクチャーの勉強をしてください。
maruさん
アドバイスを有難うございました。
CWinAppから引っ張り出すのかと思いまして、APIを眺めていましたが、良く分からず、皆さんにお知恵拝借した方が早そうに思って質問した次第です。
CDocumentのポイントは、ファイルのシリアル化でファイルの保存と読み込みに使っていました。
そのプログラムにGetPathName()を1行加えることで、簡単にパスとファイル名をゲットできました。