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

解決


なり  2008-02-12 18:53:01  No: 29798  IP: 192.*.*.*

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

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

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

編集 削除
deldel  2008-02-14 13:07:48  No: 29799  IP: 192.*.*.*

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

{ 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-14 16:19:01  No: 29800  IP: 192.*.*.*

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

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

編集 削除