• ベストアンサー

メニューにアイコンを付加するには?

Windows APIでプログラミングしています。右クリックが起きた時にLoadMenuでリソースからメニューを取り出し、TrackPopupMenuでポップアップメニューを表示するようにしています。 このメニューの項目の右横にアイコンを付けたいのですが、どうすればよいのでしょうか? また、項目の文字を太字にする方法も分かれば教えてください。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★アドアイス ・一番簡単な方法。  SetMenuItemBitmaps()関数を使います。  SetMenuItemBitmaps( hSubMenu, メニューID, MF_BYCOMMAND, hBitmap1, hBitmap2 );  hSubMenu…メニュー・ハンドル  hBitmap1…チェックされていないビットマップ・ハンドル  hBitmap2…チェックされたときのビットマップ・ハンドル ・これを使って綺麗にアイコンを表示するのは難しいです。  綺麗なアイコンを表示するにはメニューのオーナードローが必要です。  ネット検索すると多数見つかりますので調べてみて下さい。 >また、項目の文字を太字にする方法も分かれば教えてください。  ↑  ある特定の1つだけならSetMenuItemInfo()関数で MFS_DEFAULT フラグをつける。  複数のメニュー項目を太字にする場合はもうメニューのオーナードローを  行うしかありません。なお、MFS_DEFAULT を複数のメニュー項目に付けれますが、  通常は1つだけ設定すべきです。 リンク: http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_setmenuitembitmaps.asp http://wisdom.sakura.ne.jp/system/winapi/win32/win79.html

BearCave
質問者

お礼

どうやらSetMenuItemBitmaps関数はポップアップメニューには対応していないようなので、オーナードローの方法でやってみたいと思います。 太字にする方はMFS_DEFAULTフラグで解決しました。アドバイスありがとうございました。

関連するQ&A