アークピットのホームページに戻る

WinAPIトピックのトップページに戻る

APIトピックの各章に移動する

ダウンロードのページに移動する
ダウンロードができ
ない場合の対処法
 

ページ移動

3-1-3. APIとリソースファイルの関係

リソースの内部を少し理解しましょう。リソースはリソースコンパイルするとRESと言う中間ファイルになりますが、これは特別な形式のデータの塊です。またリソースを定義・操作するAPIも多数あります。これらの関係を理解すれば、特殊な使用法も可能になります。

メニューとリソース

メニューは、LoadMenu のAPIでリソースからメニューをロードします。この方法が簡単で一般的な方法です。しかし、CreateMenu などのAPIでリソースを使用しなくてもメニューを作成することも可能です。しかしこの方法は、ダイナミックにメニューの内容が変わるときにしか使用しません。またメモリ内に、MENUITEMTEMPLATEHEADER構造体に従ったデータ構造を作成し、LoadMenuIndirect のAPIをコールすることでメニューを作成することも可能です。リソースの場合はEXEファイルの一部になりますので、ユーザが変更を加えることは困難です。しかし最後の方法なら、メニューを変更してそれをデータファイル化しておくこともできます。
LoadMenu のAPIは、リソースからメモリにメニューデータをロードし、LoadMenuIndirect のAPIをコールしていると想像されます。

アイコンとカーソル

アイコンやカーソルは、LoadIcon,LoadCursor のAPIでリソースからロードします。また、CreateIcon,CreateCursor のAPIでリソースを使用しなくてもこれらを作成することも可能です。しかしその場合は、グラフィックのビットマップイメージデータが必要です。
LoadIcon,LoadCursor のAPIは、リソースからグラフィックのビットマップイメージデータとホットスポットなどの必要データをロードして、CreateIcon,CreateCursor をコールしています。

リソースの役割

上記の例から分かるように、リソースは、あくまでプログラミングを簡単にするための機構です。リソースを使うと、簡単にその機能をプログラムに組み込むことができます。しかしダイナミックに内容が変化する場合には、リソースでは対応は難しくなります。その場合は、それぞれに用意されている、CreateXxxx などのAPIが利用できます。後者が必要になる事態はあまり起こりませんが、リソースだけがこれらを利用する手段ではないことをご理解ください。

ページ移動