
MFCのCDocumentクラスが認識しているファイル名を、ドキュメントの内容を保持したまま初期化する(OnNewDocumentを実行した直後の"untitled"の状態に戻す)方法をご存じの方、教えてください。
テンプレートファイルからドキュメントの雛型を読み込んで、編集/新規ファイルに保存するアプリを作りたいのです。
テンプレートファイルを読み込んだ時点でCDocumentが認識するドキュメントファイル名はテンプレートのファイル名になってしまいます。そのまま保存されると困るので、ドキュメントの内容は保持したまま"untitled"に戻したいと考えています。
SetPathName("")だと、エラーが発生してしまいます。MFCのソースを読むと、SetPathNameは、渡されたファイル名を絶対パス表現に書換えようとしており、それに失敗するとエラーを発生させる仕様になっているようです。バージョンはVC++ 2003です。
なお、通常のファイル(テンプレートではないファイル)を読み込んで編集/保存する、という動作もするので、OnFileSaveの動作を殺してOnFileSaveAsしか動作しないようにする事によってテンプレートファイルへの上書きを防止する、という方法は不可です。
No.1ベストアンサー
- 回答日時:
ちょっとスマートじゃありませんが、
m_strPathNameを空にして
m_bModifiedをFALSE?う~んテンプレートを読み込んで初期化した状態だからTRUEか?まーすきなほうで^^;
m_strTitleをuntitledにしてあげればいいんじゃないでしょうか?
確認したのがVC6のDOCCORE.cppだったので多少違うかもしれませんが・・・
あーあと気を付けないといけないのが、タイトルを変更してあげるのをメンバ変数直接やる場合、UpdateFrameCounts()などを呼び出して画面表示をリフレッシュしてあげないといけませんね~
m_strPathNameがEmptyの場合、SetPathNameはASSERTするようになっていたので、空にしてはいけないものだと決めつけていたのですが、動いちゃいました。
m_strPathName.Empty();
m_strTitle.LoadString(AFX_IDS_UNTITLED);
UpdateFrameCounts();
これでいいみたいです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel: ファイル名になぜ、[...
-
エクセルのファイル:「自分」が...
-
彼女の過去の恋愛に嫉妬してし...
-
複数のExcelファイルにある同名...
-
オラクルで更新するまで、排他...
-
5000個のtiffファイルをpdfへ変...
-
EXCELVBAにて文字列にして「01...
-
VB6.0のログファイル
-
vbsからのExcelマクロ呼び出し...
-
CSVファイルの特定行の削除
-
docxをmht形式で保存したファイ...
-
フォルダ内の複数のファイルの...
-
FTPのgetとputの使いわけ。
-
WINDOWS CMDからゴミ箱のファ...
-
xlsファイルが開かない。
-
VBAにおいて、ファイルの移...
-
CreateFile関数によるCD/DVDへ...
-
ファイルが移動してもリンクの...
-
iCloud for Windowsをアンイン...
-
ノーツの添付ファイルの場所を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel: ファイル名になぜ、[...
-
エクセルのファイル:「自分」が...
-
彼女の過去の恋愛に嫉妬してし...
-
CSVファイルの特定行の削除
-
ファイルが移動してもリンクの...
-
複数のExcelファイルにある同名...
-
EXCELVBAにて文字列にして「01...
-
xlsファイルが開かない。
-
vbsからのExcelマクロ呼び出し...
-
CSVファイルの暗号化
-
FTPのgetとputの使いわけ。
-
docxをmht形式で保存したファイ...
-
VBA ファイル一覧を取得して全...
-
iCloud for Windowsをアンイン...
-
[Unity]シーンファイルの中が消...
-
VBSでフォルダ内の最新のファイ...
-
VBAにおいて、ファイルの移...
-
このファイルは外部のエディタ...
-
batでファイル名を変更したい(...
-
Googleドライブについて
おすすめ情報