在窗体上放一个TPopupMenu控件,下面用的是TButton来演示的,代码写在TButton的OnMouseUp里面。 procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Ptp:PTPMParams; begin if Button=mbLeft then begin GetMem(Ptp,SizeOf(TTPMParams)); Ptp^.cbSize:=SizeOf(TTPMParams); Ptp^.rcExclude:=Rect(Mouse.CursorPos.X,Mouse.CursorPos.Y,Screen.Width,Screen.Height); TrackPopupMenuEx(PopupMenu1.Handle,TPM_CENTERALIGN or TPM_VERTICAL,Mouse.CursorPos.X,Mouse.CursorPos.Y,Handle,Ptp); FreeMem(Ptp); end; end;
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Ptp:PTPMParams;
begin
if Button=mbLeft then
begin
GetMem(Ptp,SizeOf(TTPMParams));
Ptp^.cbSize:=SizeOf(TTPMParams);
Ptp^.rcExclude:=Rect(Mouse.CursorPos.X,Mouse.CursorPos.Y,Screen.Width,Screen.Height);
TrackPopupMenuEx(PopupMenu1.Handle,TPM_CENTERALIGN or TPM_VERTICAL,Mouse.CursorPos.X,Mouse.CursorPos.Y,Handle,Ptp);
FreeMem(Ptp);
end;
end;