ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:BearCave メニューにアイコンを付加するには?
困り度:
  • 困っています
Windows APIでプログラミングしています。右クリックが起きた時にLoadMenuでリソースからメニューを取り出し、TrackPopupMenuでポップアップメニューを表示するようにしています。

このメニューの項目の右横にアイコンを付けたいのですが、どうすればよいのでしょうか?

また、項目の文字を太字にする方法も分かれば教えてください。
質問投稿日時:08/04/18 12:26
質問番号:3956842
この質問に対する回答は締め切られました。

回答

良回答20pt

回答者:Oh-Orange ★アドアイス
・一番簡単な方法。
 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/jp...
http://wisdom.sakura.ne.jp/system/winapi/win32/win79.html
種類:アドバイス
どんな人:専門家
自信:参考意見
回答日時:08/04/18 20:45
回答番号:No.1
この回答へのお礼どうやらSetMenuItemBitmaps関数はポップアップメニューには対応していないようなので、オーナードローの方法でやってみたいと思います。
太字にする方はMFS_DEFAULTフラグで解決しました。アドバイスありがとうございました。