MFC データベース アプリケーションの メニュー
MFC データベース アプリケーションを作成するときにシリアル化を使わない場合は、[ファイル] メニューの [開く]、[閉じる]、[上書き保存]、[名前を付けて保存] の各コマンドをどのように解釈したらよいでしょう。 特にガイドラインはありませんが、以下の方法をお勧めします。
[ファイル] メニューの [開く] コマンドを完全に削除します。
[ファイル] メニューの [開く] コマンドを "データベースを開く" と解釈して、アプリケーションが認識できるデータ ソースを一覧表示します。
[ファイル] メニューの [開く] コマンドを "Open profile" コマンドと解釈します。[ファイル] メニューの [開く] コマンドは残して、シリアル化されたファイルを開くときに使いますが、このファイルを使って "ユーザー プロファイル" 情報を含む、シリアル化されたドキュメントを格納します。ユーザー プロファイル情報には、ユーザーのログイン ID (パスワードの除外は任意) を含めたユーザー プリファンレンスや、ユーザーが最後に操作したデータ ソースなどがあります。
MFC AppWizard では、ドキュメント関連の [ファイル] メニュー コマンドがないアプリケーションでも作成できます。 [データベース サポート] ページの [ファイル サポートのないデータベース ビュー] オプションを選択します。
[ファイル] メニューのコマンドを特別な用途に使う場合には、通常、CWinApp 派生クラスの 1 つ以上のコマンド ハンドラーをオーバーライドする必要があります。 たとえば、[ファイル] メニューの [開く] コマンドを "データベースを開く" コマンドに変えるには、ID_FILE_OPEN コマンドを実装した関数 OnFileOpen を完全にオーバーライドします。
フレームワークの既定のコマンド実装が置き換えられるので、基本クラスの OnFileOpen 関数は呼び出さないでください。
代わりに、ハンドラーを使ってデータ ソースをリストするダイアログ ボックスを表示します。 そのようなダイアログを表示するには、CDatabase::OpenEx または CDatabase::Open をパラメーターに NULL を指定して呼び出します。 これによって ODBC ダイアログ ボックスが開かれ、ユーザーのコンピューターからアクセスできるすべてのデータベースが表示されます。
通常、データベース アプリケーションでは、ドキュメント全体が保存されることはないため、シリアル化されたドキュメントを使ってプロファイル情報を格納する場合を除いて、[上書き保存] と [名前を付けて保存] の実装を削除することもできます。 または、[上書き保存] コマンドを "トランザクションをコミットする" などと実装することもできます。これらのコマンドのオーバーライド方法については、オンライン ドキュメントの MFC「テクニカル ノート 22: 標準コマンドの実装」を参照してください。