保存動作のカスタマイズ

MFCでは、保存動作のカスタマイズ用の関数として、

virtual BOOL CDocument::OnSaveDocument(LPCTSTR lpszPathName);


が用意されています。
MFCが自動的に保存ダイアログを表示(するか、開いたときのファイル名を使用)して、ファイル名が確定された後に、呼び出されますので、これだけでは、あまり凝ったことは出来ません。

このほかに、

virtual BOOL CDocument::DoFileSave();
virtual BOOL CDocument::DoSave(LPCTSTR lpszPathName, BOOL bReplace);


をオーバーライドすることが出来ます。
DoFileSave()は、「保存」コマンドが押されたときの動作をカスタマイズ出来ます。
「保存」ボタンでは常に新しいファイル名を自動生成して保存する、、、などの処理を実装したい場合は、ここにその処理を書き込んで、DoSave()に渡します。

また、DoSave()では、ファイル名(lpszPathName)としてNULLが渡されたときに、保存ダイアログを表示しています。標準のDoSave()では、ファイル形式などのカスタマイズがしにくく不便なので、ここで書き換えてしまいましょう。

ちなみに、これらのソースは、VisualStudioのインストール先フォルダ以下の「DOCCORE.CPP」というファイルに書かれていますので、一度のぞいてみて下さい。
[PR]
by isoq | 2004-07-13 12:43 | C/C++/Win32
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇
<< ファイルダイアログのカスタマイ... フォルダパスとファイル名の連結 >>