• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Win32APIにて、アイコンの情報を取得する方法を教えてください。)

Win32APIでアイコンの情報を取得する方法

このQ&Aのポイント
  • Win32APIを使用して、ウィンドウにアイコンを描画する際に、アイコンの幅と高さを取得する方法について教えてください。
  • ビットマップ画像の幅と高さを取得する方法を知っていますが、アイコンの場合はどうやって幅と高さを求められるのか教えてください。
  • お世話になっています。ウィンドウにアイコンを描画する際の転送元画像の幅と高さを取得する方法について、アドバイスをいただきたいです。C言語とWin32APIを使用しており、現在Windowsプログラミングを勉強しています。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

 こんばんは。  GetIconInfo()APIです。    http://msdn.microsoft.com/ja-jp/library/cc364668.aspx  http://msdn.microsoft.com/en-us/library/ms648052(VS.85).aspx //TRUE->アイコン、FALSE->カーソル ICONINFO ici = {TRUE}; ::GetIconInfo(hIcon, &ici); //ICONINFO::hbmColorメンバにビットマップハンドルが入っている BITMAP bmp; ::GetObject(ici.hbmColor, sizeof(bmp), &bmp);

HackHack
質問者

補足

早速ご回答頂き、誠にありがとうございます。 記述していただいた、コードの流れは以下の解釈でよろしいでしょうか?? BITMAP bmp; //ICONINFOをアイコンに設定 ICONINFO ici = TRUE; //GetIconInfoを使用し、アイコンの情報を取得 GetIconInfo(hIcon, &ici); //iciメンバの中のhbmColorから、アイコンのビットマップ情報を取得 GetObject(ici.hbmColor, sizeof(bmp), &bmp); 以上です。 お忙しい中、申し訳ございませんが、ご確認の程、宜しくお願いします。

その他の回答 (1)

回答No.2

 こんばんは。補足頂きました。  コンパイラによるかもしれませんが、構造体の初期化子である{}を使用しない場合は、  ici.fIcon = TRUE;  と書いて下さい(当方はVisualStudio2008を使用しています)。  解釈は全て合っています。

HackHack
質問者

お礼

お忙しい中、ご回答頂き誠にありがとうございます。 記述させて頂いた内容もご確認頂き、お世話になります。 早速、頂いたアドバイスを基にコードを書こうと思います。 本当にありがとうございました!