アイコンハンドルからアイコンサイズを取得するには? – プログラミング – Home

アイコンハンドルからアイコンサイズを取...
 
通知
すべてクリア

[解決済] アイコンハンドルからアイコンサイズを取得するには?


Tome
 Tome
(@Tome)
ゲスト
結合: 19年前
投稿: 36
Topic starter  

LoadImageの引数にLR_DEFAULTSIZEを指定して作成したアイコンのサイズを取得したいのです
が、どうしたらいいでしょうか?

LoadImage( GetModuleHandle(NULL), MAKEINTRESOURCE( IconID ), IMAGE_ICON, 0, 0,
LR_DEFAULTSIZE );

調べてみたのですが、それっぽいものが見つかりませんでした。
よろしくおねがいします。

■環境
VC++6.0
非MFC
WindowsXP


引用未解決
トピックタグ
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

MSDNを読めば載っているのですが,LR_DEFAULTSIZEを指定した場合,サイズはシステムメ
トリックに強制的に合います。
なので,GetSystemMetricsでSM_CXICONなりSM_CYICONなりを指定した値になります。

LR_DEFAULTSIZEを指定していない場合であれば,
・GetIconInfoでICONINFOの情報を得る
・GetObjectにICONINFO::hbmColorを渡してBITMAPの情報を得る
・BITMAP::bmHeightとBITMAP::bmWidthに高さと幅が入っている
で得られるはずです。
# もちろん,LR_DEFAULTSIZEを指定した場合でも得られますがGetSystemMetricsの方が楽
です。


返信引用
Tome
 Tome
(@Tome)
ゲスト
結合: 19年前
投稿: 36
Topic starter  

YuOさんありがとうございます。
たしかにMSDNに書いてありますね。そういう意味だでしたか。

ICONINFO::hbmColorはそれ自体すでにあるビットマップハンドルだと思ってました。
GetObjectですか・・・なるほど

解決です。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました