通知
すべてクリア
Topic starter
2006年8月31日 9:50 PM
LoadImageの引数にLR_DEFAULTSIZEを指定して作成したアイコンのサイズを取得したいのです
が、どうしたらいいでしょうか?
LoadImage( GetModuleHandle(NULL), MAKEINTRESOURCE( IconID ), IMAGE_ICON, 0, 0,
LR_DEFAULTSIZE );
調べてみたのですが、それっぽいものが見つかりませんでした。
よろしくおねがいします。
■環境
VC++6.0
非MFC
WindowsXP
2006年9月1日 2:11 AM
MSDNを読めば載っているのですが,LR_DEFAULTSIZEを指定した場合,サイズはシステムメ
トリックに強制的に合います。
なので,GetSystemMetricsでSM_CXICONなりSM_CYICONなりを指定した値になります。
LR_DEFAULTSIZEを指定していない場合であれば,
・GetIconInfoでICONINFOの情報を得る
・GetObjectにICONINFO::hbmColorを渡してBITMAPの情報を得る
・BITMAP::bmHeightとBITMAP::bmWidthに高さと幅が入っている
で得られるはずです。
# もちろん,LR_DEFAULTSIZEを指定した場合でも得られますがGetSystemMetricsの方が楽
です。
Topic starter
2006年9月1日 7:21 AM
YuOさんありがとうございます。
たしかにMSDNに書いてありますね。そういう意味だでしたか。
ICONINFO::hbmColorはそれ自体すでにあるビットマップハンドルだと思ってました。
GetObjectですか・・・なるほど
解決です。
ありがとうございました。