テクニカル ノート 23: MFC の標準リソース
更新 : 2007 年 11 月
ここでは MFC ライブラリが使用する標準リソースについて説明します。
標準リソース
MFC にはアプリケーションから利用できる定義済みリソースが用意されています。これらのリソースはクリップアート リソースと標準フレームワーク リソースに分類されます。
クリップアート リソースは補助的なリソースであり、フレームワークでは必要ありませんが、アプリケーションのユーザー インターフェイスに追加すると便利です。次のクリップ アート リソースが『MFC サンプル』の「CLIPART サンプル : コモン リソース」にあります。
Common.rc: 次のリソースを含む単一のファイルです。
ビジネスとデータ処理に関するさまざまなアイコン
数種類の一般的なカーソル (Afxres.rc も参照してください)
数種類のツール バー ボタンを持つツール バー ビットマップ
Commdlg.dll が使用するビットマップとアイコン リソース
Indicate.rc: ステータス バーに表示される、キー状態を表す文字列リソース ([CapsLock] を表す "CAP" など) が納められています。
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 ファイルのリソースを直接変更しないようにしてください。変更してしまうと、現在作成しているアプリケーションだけでなく、すべてのアプリケーションで利用できるリソースが変わってしまいます。 |