ページ 11

メニュー項目の太字を元に戻すには?

Posted: 2008年4月14日(月) 23:13
by jacoby
SetMenuItemInfoなどで
menuItemInfo.fState=MFS_DEFAULTとして
太字に設定したメニュー項目の文字を、元の普通の細い文字に
戻したいと思ったのですが、それらしい「MFS_UNHILITE」などをセットしてみても
元に戻りません。

MFS_ENABLEDや他のものも端からセットしてみたのですが
解消されず、かといってそれらのセットが全くなされていないのか
といえばそうでもないようで、、
「MFS_CHECKED」でちゃんとチェックが入りますし
「MFS_GRAYED」では灰色表示になるのですが、いずれも太い字のまま、です。
「MFS_UNHILITE」、「MFS_ENABLED」はなんの変化もなし。

メニュー項目の文字をもとの細い字に戻すにはどうすれば良いでしょうか?

Posted: 2008年4月20日(日) 01:25
by あひる
デフォルトアイテムを設定するには、MENUITEMINFO構造体のfMaskにMIIM_STATEを加え
fStateにMFS_DEFAULTを指定する方法と、SetMenuDefaultItemを呼び出す方法があります
だそうです。

そして更にSetMenuDefaultItem()の第二引数は
既定のメニュー項目にするべき、1 つのメニュー項目の識別子または位置を指定します。-1 を指定すると、既定のメニュー項目を設定しません。
とのことです。

これで解決しませんか?

レスありがとうございます。

Posted: 2008年5月01日(木) 08:02
by jacoby
 返信が大変遅れてしまってすみません!
あひるさん、レス有難うございます!
そして更にSetMenuDefaultItem()の第二引数は
Quote:
既定のメニュー項目にするべき、1 つのメニュー項目の識別子または位置を指定します。-1 を指定すると、既定のメニュー項目を設定しません。

とのことです。
教えて頂いたSetMenuDefaultItem()を使ってみたら、太字が元にもどりました!
ただしその、なぜか第二引数に設定した、戻したいメニュー項目"以外"の全ての
メニュー項目が細字に戻って、戻したいメニュー項目は太字のままという、少し
ややこしい状態になっています。
 ただでも御蔭様で「細字に戻す道」は開けた感じがしているので、何とかあれこれ
いじってやってみたいと思います。
有難うございます。返信、十日も過ぎてしまって申し訳ありませんでした。
また宜しくお願いします。