テクニカル ノート 23: MFC の標準リソース
ここでは MFC ライブラリが使用する標準リソースについて説明します。
標準リソース
MFC は、アプリケーションで使用できる定義済みのリソースの 2 つのカテゴリがあります。クリップ アート リソース、標準フレームワーク リソース。
クリップアート リソースは補助的なリソースであり、フレームワークでは必要ありませんが、アプリケーションのユーザー インターフェイスに追加すると便利です。 次のクリップ アート リソースが『MFC サンプル』の「CLIPART サンプル : コモン リソース」にあります。
Common.rc:1 つが含まれているファイルのリソース:
ビジネスとデータ処理に関するさまざまなアイコン
数種類の一般的なカーソル (Afxres.rc も参照してください)
数種類のツール バー ボタンを持つツール バー ビットマップ
Commdlg.dll が使用するビットマップとアイコン リソース
Indicate.rc:ステータス バーのキー状態指標の Caps ロックの「キャップ」などの文字列リソースが含まれていますいます。
Prompts.rc:各新規ドキュメントの作成など、定義済みのコマンドのメニュー プロンプト文字列リソースが含まれていますID_FILE_NEW。
Commdlg.rc:COMMDLG の標準のダイアログ テンプレートが含まれている Visual C 互換の .rc ファイル。
標準フレームワーク リソースは AFX で定義されている ID を持つリソースです。これらはフレームワークを使用するうえで必要となるリソースです。 通常、これらのリソースを変更する必要はありません。 変更する場合は後に示す手順に従ってください。
次のフレームワーク リソースがフォルダー MFC\INCLUDE にあります。
Afxres.rc:フレームワークによって使用される共通のリソース。
Afxprint.rc:印刷する特定のリソース。
Afxolecl.rc:OLE クライアント アプリケーションを特定のリソース。
Afxolev.rc:完全な OLE サーバー アプリケーションに特定のリソース。
クリップ アートのバイナリ リソースを使用するには
Visual C++ で、作成するアプリケーションのリソース ファイルを開きます。
Common.rc を開きます。 このファイルには、すべてのバイナリ クリップ アート リソースが含まれています。 このとき、Common.rc ファイルをコンパイルするために多少の時間がかかります。
Ctrl キーを押しながら、使用するリソースを Common.rc からアプリケーションのリソース ファイルにドラッグします。
他のクリップ アート リソースを使用する場合も、手順は同じです。 ただし、Common.rc の代わりに、該当する .rc ファイルを開いてください。
注意
Common.rc 中のリソースを他の場所に移動してしまわないように注意してください。 Ctrl キーを押しながらリソースをドラッグすると、コピーが作成されます。 Ctrl キーを押さずにドラッグすると、リソースは元の場所から削除されます。 Common.rc ファイルを間違って変更してしまうことがないように、Common.rc の変更を保存するかどうかを確認する画面が表示されたら、[いいえ] をクリックしてください。
注意
.rc リソース ファイルには特殊なリソース TEXTINCLUDE が含まれています。このリソースは、誤って標準 .rc ファイルにリソースが保存されないようにするために使用されます。
標準フレームワーク リソースのカスタマイズ
通常、標準フレームワーク リソースをアプリケーションに組み込むには、アプリケーションのリソース ファイルで #include コマンドを使用します。 リソース ファイルは、AppWizard によって生成できます。 選択した AppWizard オプションに基づいて、該当する標準フレームワーク リソースがリソース ファイルに組み込まれます。 コンパイル時ディレクティブを変更することによって、組み込むリソースの確認、追加、削除を行うこともできます。 そのためには、[リソース] メニューを開いて [インクルードの設定] を選択します。 "コンパイル時ディレクティブ" という編集項目を参照してください。 次に例を示します
#include "afxres.rc"
#include "afxprint.rc"
カスタマイズによって追加、削除することが多い標準フレームワーク リソースとしては、印刷用リソース、OLE クライアント用リソース、OLE サーバー用リソースなどがあります。
特定のアプリケーションを作成するときは、単なるファイルの追加、削除ではなく、標準フレームワーク リソースの内容のカスタマイズが必要になることもあります。 組み込むリソースを制限する方法を次に示します。
標準リソース ファイルの内容をカスタマイズするには
Visual C++ でリソース ファイルを開きます。
[リソース] の [インクルードの設定] コマンドを使用して、カスタマイズする標準 .rc ファイルの #include を削除します。 たとえば、印刷プレビュー ツール バーをカスタマイズする場合は、#include "afxprint.rc" という行を削除します。
MFC\INCLUDE にある対象の標準リソース ファイルを開きます。 先ほどの例では、MFC\Include\Aafxprint.rc ファイルです。
標準 .rc ファイルのすべてのリソースをアプリケーションのリソース ファイルにコピーします。
アプリケーション リソース ファイルにコピーした標準リソースに変更を加えます。
注意
標準 .rc ファイルのリソースを直接変更しないようにしてください。 変更してしまうと、現在作成しているアプリケーションだけでなく、すべてのアプリケーションで利用できるリソースが変わってしまいます。