掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
メニューの右クリック (ID:46498)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
マウス位置のメインメニューアイテムだけなら以下で取れます。 ただしpopupmenu1.popupでポップアップメニューが表示されません。 (多分VCL側で何かしているのかと…) ポップアップメニュー上の右クリックは、 ・サブメニューがないとダメ ・SetWindowsHookExでフックする だった記憶があります。 m_mnuItem: TMenuItem; // メニューの選択項目をグローバルに格納しておく procedure TForm1.WMMenuSelect(var Message: TWMMenuSelect); var FindKind: TFindItemKind; ItemIndex: Integer; begin if m_bDestroy then Exit; m_mnuItem := nil; FindKind := fkCommand; if Message.MenuFlag and MF_POPUP <> 0 then begin FindKind := fkHandle; end; if FindKind = fkHandle then begin if Message.Menu <> 0 then begin ItemIndex := GetSubMenu(Message.Menu, Message.IDItem); end else begin ItemIndex := -1; end; end else begin ItemIndex := Message.IDItem; end; m_mnuItem := MainMenu1.FindItem(ItemIndex, FindKind); inherited; end; procedure TForm1.WMRButtonUp(var Message: TWMRButtonUp); var pos: TPoint; begin if Assigned(m_mnuItem) then begin GetCursorPos(pos); popupmenu1.popup( pos.X , pos.Y ); s_debugmsg(format('WMRButtonUp caption=%s',[m_mnuItem.caption])); end; inherited; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.