プロが教えるわが家の防犯対策術!

Windows APIでプログラミングしています。右クリックが起きた時にLoadMenuでリソースからメニューを取り出し、TrackPopupMenuでポップアップメニューを表示するようにしています。

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

また、項目の文字を太字にする方法も分かれば教えてください。

A 回答 (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 …
http://wisdom.sakura.ne.jp/system/winapi/win32/w …
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/04/21 08:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!