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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
jacoby
記事: 106
登録日時: 2006年6月02日(金) 18:20

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

#1 投稿記事 by jacoby »

SetMenuItemInfoなどで
menuItemInfo.fState=MFS_DEFAULTとして
太字に設定したメニュー項目の文字を、元の普通の細い文字に
戻したいと思ったのですが、それらしい「MFS_UNHILITE」などをセットしてみても
元に戻りません。

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

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

#2 投稿記事 by あひる »

デフォルトアイテムを設定するには、MENUITEMINFO構造体のfMaskにMIIM_STATEを加え
fStateにMFS_DEFAULTを指定する方法と、SetMenuDefaultItemを呼び出す方法があります
だそうです。

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

これで解決しませんか?
jacoby
記事: 106
登録日時: 2006年6月02日(金) 18:20

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

#3 投稿記事 by jacoby »

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

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