サブメニューのあるポップアップメニューで、親メニューのクリックを知る方法は?

解決


なり  2008-02-13 03:53:01  No: 29798

お世話になります。
Delphi2007+WinXP環境にて、おそらく仕様だと思うのですが、
ポップアップメニューでサブメニューがある場合、その親メニュー
をマウスクリックしてもクリックイベントが発生しません。

たとえば、開発部という親メニューのサブメニューとして、
一課、二課があるとします。
一課、二課ではクリックイベントが発生しますが、開発部を
クリックしてもイベントが発生しません。

親メニューも選択肢の一つとしたいのですが、親メニューが
クリックされたことを知るために、なにかいい方法ないでしょうか?


deldel  2008-02-14 22:07:48  No: 29799

参考になるかどうか分かりませんが・・・

{ Private 宣言 }
procedure WMMENUSELECT(var msg: TWMMENUSELECT); message WM_MENUSELECT;

・・・

procedure TForm1.WMMENUSELECT(var msg: TWMMENUSELECT);
var
  boMenuOpen: Boolean;
begin
  inherited;

  boMenuOpen := not ((msg.MenuFlag and $FFFF > 0) and (msg.Menu = 0));

  if boMenuOpen then begin
    Label1.Caption := 'Open';
  end else begin
    Label1.Caption := 'Close';
  end;
end;


なり  2008-02-15 01:19:01  No: 29800

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

結局、マウス操作をフックしてやることにしました。
なんとかできそうです。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加