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