"APIで学ぶWindows徹底理解"でスルー気味だった「リソース」のサンプル集です。
この読書メモのスタンス、およびサンプルコードの入手については以下を参照して下さい。
読書メモ/「APIで学ぶWindows徹底理解」
アイコンやダイアログのデザイン、メニューや文字列を格納する"リソース"関連の情報は以下のMSDN Libraryに集約されている:
"MSDN Library" > "Windows Development" > "Windows Application UI Development" > "Windows User Interface" > "Resources"
このサンプルに含まれている ".rc", "resource.h" は"ResEdit"で作成しています。
コンパイル方法:
rc string_res01.rc cl string_res01.c user32.lib string_res01.res
文字列リソースをLoadString()で取得し表示する簡単なサンプル。
コンパイル方法:
rc string_res02.rc cl string_res02.c user32.lib string_res02.res
FindResource(Ex)(), LoadResource()で文字列"テーブル"を直接取得し、16進ダンプするサンプル。
参考:
また、このサンプルでは言語を指定してリソースを取り出す機能も試すことが出来る。
string_res02.rc ファイルには日本語・英語・デフォルトの3種類の文字列リソースを埋め込んでいる。 string_res02.c のソースコードでコメントアウトしてあるFindResourceEx()のコメントアウトを外し、代わりにFindResource()をコメントアウトすれば言語を指定してリソースを取得する準備が整う。
hResRc = FindResource( hCurrentInst, MAKEINTRESOURCE(wBlockID), RT_STRING);
↓
hResRc = FindResourceEx( hCurrentInst, RT_STRING, MAKEINTRESOURCE(wBlockID), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT) );
第4引数で言語IDを指定出来るので、
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)
で英語用のリソース、
MAKELANGID(LANG_JAPANESE, SUBLANG_JAPANESE_JAPAN)
で日本語用のリソースを取得出来る。
コンパイル方法:
rc menu_res01.rc cl menu_res01.c user32.lib menu_res01.res
メニューリソースを使ってメインメニューを構築するサンプル。
コンパイル方法:
rc dialogbox_res01.rc cl dialogbox_res01.c user32.lib dialogbox_res01.res
リソースエディタでデザインしたダイアログボックスを使ってみるサンプル。
コメント