
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/12 16:58
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/08/04 13:56
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Word(ワード) PCで作ったwordをスマホで編集しようとすると「このファイルは読み取り専用です。」と表示される。 3 2023/05/30 14:51
- 画像編集・動画編集・音楽編集 inkscapeで作成した図の保存の仕方とその保存したファイルの編集の仕方 1 2022/09/22 09:33
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/03/31 12:46
- バックアップ ファイル名を変更前の名前に戻す方 3 2023/07/06 19:32
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel: ファイル名になぜ、[...
-
エクセルのファイル:「自分」が...
-
彼女の過去の恋愛に嫉妬してし...
-
CSVファイルの特定行の削除
-
xlsファイルが開かない。
-
ituneのファイル
-
ドリームウィーバーMX2004で更...
-
EXCELVBAにて文字列にして「01...
-
アクセスが開かなくなってしま...
-
このファイルは外部のエディタ...
-
C# リッチテキスト形式のファイ...
-
docxをmht形式で保存したファイ...
-
Googleドライブについて
-
【C#】Visualstudioにてデザイ...
-
FTPのgetとputの使いわけ。
-
一つのフォルダーに50個のエク...
-
インターネットの動画をファイ...
-
パソコンのファイルの開き方に...
-
ファイルが移動してもリンクの...
-
フォルダ内の複数のファイルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの特定行の削除
-
彼女の過去の恋愛に嫉妬してし...
-
エクセルのファイル:「自分」が...
-
Excel: ファイル名になぜ、[...
-
ファイルが移動してもリンクの...
-
複数のExcelファイルにある同名...
-
iCloud for Windowsをアンイン...
-
EXCELVBAにて文字列にして「01...
-
[Unity]シーンファイルの中が消...
-
vbsからのExcelマクロ呼び出し...
-
5000個のtiffファイルをpdfへ変...
-
batでファイル名を変更したい(...
-
WINDOWS CMDからゴミ箱のファ...
-
VBA ファイル一覧を取得して全...
-
docxをmht形式で保存したファイ...
-
CSVファイルの暗号化
-
バインダーの作り方
-
FTPのgetとputの使いわけ。
-
フォルダ内の複数のファイルの...
-
自動で.xlsを閉じて指定フォル...
おすすめ情報