テクニカル ノート 23: MFC の標準リソース
このノートでは、MFC ライブラリに付属し、それに必要な標準リソースについて説明します。
標準リソース
MFC は、アプリケーションで使用可能な定義済みのリソースの 2 つのカテゴリ (クリップアート リソースと標準フレームワーク リソース) を提供しています。
クリップアート リソースは、フレームワークが依存しないが、アプリケーションのユーザー インターフェイスに追加できる追加のリソースです。 MFC 標準サンプルの CLIPART に、次のクリップアート リソースが含まれています。
Common.rc: 次を含むリソースの単一ファイル。
さまざまなビジネス タスクとデータ処理タスクを表すアイコンの大規模なコレクション。
いくつかの一般的なカーソル (Afxres.rc も参照)。
複数のツール バーのボタンを含むツール バー ビットマップ。
Commdlg.dll によって使用されるビットマップ リソースとアイコン リソース。
Indicate.rc: Caps Lock の "CAP" など、ステータス バーのキー状態インジケーターの文字列リソースが含まれています。
Prompts.rc: ID_FILE_NEW の "新しいドキュメントの作成" など、定義済みのコマンドごとのメニュープロンプト文字列リソースが含まれています。
Commdlg.rc: 標準の COMMDLG ダイアログ テンプレートを含む Visual C++ と互換性のある .rc ファイル。
標準フレームワーク リソースは、フレームワークが内部実装として依存する AFX 定義 ID が付与されたリソースです。 これらの AFX 定義リソースを変更する必要はほとんどありません。 変更する場合は、このトピックで後で説明する手順に従う必要があります。
MFC\INCLUDE ディレクトリに、次のフレームワーク リソースが格納されています。
Afxres.rc: フレームワークによって使用される一般的なリソース。
Afxprint.rc: 印刷に固有のリソース。
Afxolecl.rc: OLE クライアント アプリケーションに固有のリソース。
Afxolev.rc: 完全な OLE サーバー アプリケーションに固有のリソース。
クリップアート リソースの使用
クリップアート バイナリ リソースを使用するには
Visual C++ でアプリケーションのリソース ファイルを開きます。
Common.rc を開きます。 このファイルには、すべてのバイナリ クリップアート リソースが含まれています。 Common.rc ファイルがコンパイルされるため、これには時間がかかる場合があります。
Ctrl キーを押しながら、使用するリソースを Common.rc からアプリケーションのリソース ファイルにドラッグします。
他のクリップアート リソースを使用するには、同じステップに従ってください。 唯一の違いは、Common.rc ではなく、該当する .rc ファイルを開くことです。
Note
誤って Common.rc からリソースを完全に移動しないように注意してください。 Ctrl キーを押しながらリソースをドラッグすると、コピーが作成されます。 ドラッグ中に Ctrl キーを押したままにしない場合は、リソースが移動されます。 Common.rc ファイルに誤って変更を加えた可能性が懸念される場合は、Common.rc に変更を保存するかどうかを尋ねられたときに、[いいえ] をクリックします。
Note
.rc リソース ファイルには、標準の .rc ファイルの一番上に誤って保存されるのを防ぐ特殊な TEXTINCLUDE リソースが含まれています。
標準フレームワーク リソースのカスタマイズ
標準フレームワーク リソースは、通常、アプリケーションのリソース ファイルで #include コマンドを使用することによって、アプリケーションにインクルードされます。 AppWizard がリソース ファイルを生成します。 このファイルには、選択された AppWizard オプションに応じて、適切な標準フレームワーク リソースが含まれています。 コンパイル時ディレクティブを変更することによって、含まれるリソースを確認、追加、または削除できます。 これを行うには、[リソース] メニューを開き、[インクルード ファイルの設定] を選択します。 "コンパイル時ディレクティブ" 編集項目を確認してください。 次に例を示します。
#include "afxres.rc"
#include "afxprint.rc"
標準フレームワーク リソースをカスタマイズする最も一般的なケースは、印刷、OLE クライアント、および OLE サーバーのサポートに関する新たなインクルードを追加または削除する場合です。
まれに、ファイル全体を追加または削除するだけではなく、特定のアプリケーションの標準フレームワーク リソースの内容をカスタマイズしたい場合があります。 次の手順では、インクルードするリソースを制限する方法を示します。
標準リソース ファイルの内容をカスタマイズするには
Visual C++ でリソース ファイルを開きます。
Resource Set Includes コマンドを使用して、カスタマイズする標準の .rc ファイルの
#include
を削除します。 たとえば、印刷プレビュー ツール バーをカスタマイズするには、#include "afxprint.rc"
行を削除します。MFC\INCLUDE で該当する標準リソース ファイルを開きます。 このトピックの以前の例に従えば、該当するファイルは MFC\Include\Aafxprint.rc です。
標準の .rc ファイルからアプリケーション リソース ファイルにすべてのリソースをコピーします。
アプリケーション リソース ファイル内の標準リソースのコピーを変更します。
Note
標準の .rc ファイル内のリソースを直接変更しないでください。 変更した場合は、現在作業中のリソースだけでなく、すべてのアプリケーションで使用可能なリソースが変更されます。