1つだけ過去を変えられるとしたら?

メニューバーのメニューの上にマウスが乗った時にWM_MENUSELECT が送られてくるのはわかったのですが、下記のリソースファイルで※1や※2のところで同じようにマウスが乗った時かどうかを調べるにはどうしたらいいですか?

ステータスバーに文字を表示したいのですが、※1や※2のところの場合はどうしたらいいのかわかりません。

//リソースファイル
IDR_ID1 MENU
BEGIN
 POPUP "ファイル"//※1
 BEGIN
   MENUITEM "新規" IDM_1
    POPUP "オプション"//※2
    BEGIN
      MENUITEM "項目1"  IDM_2
    END
 END
END
//

あと、VisualStudio2010で開発していて、MFCは使用していません。
よろしくお願いします。

A 回答 (2件)

どちらもWM_MENUSELECTからどう判定したらいいのか判らない。


ということでしょうか?
HIEORD(wParam)でMF_POPUPがついて、LOWORD(wParam)が0なら※1、LOWORD(wParam)が1なら※2になるかと。

IDM_1とPOPUP "オプション"の位置が入れ替わるとLOWORD(wParam)で判定できなくなるかも知れませんが、lParamのメニューハンドルが異なるはずなのでそちらで判定できると思われます。
GetMenu()やGetSubMenuでメニューハンドル取得できますし。

リソースでない場合は…
http://eternalwindows.jp/winbase/menu/menu04.html
こちらで書かれている方法で対処できそうですが…。
    • good
    • 0
この回答へのお礼

ありがとうございます
※2のほうはGetSubMenuなどを使用しました

お礼日時:2011/07/17 12:31

ぐぁ…


HIEORD(wParam)はHIWORD(wParam)です。
    • good
    • 0

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


おすすめ情報