카테고리 없음
[윈도우즈 API] Taskbar 의 특정 위치에 popup 메뉴 띄우기
쇼핑스크래퍼3
2023. 9. 3. 08:50
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus;
type
TForm1 = class(TForm)
Button1: TButton;
PopupMenu1: TPopupMenu;
Menu1: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure Menu1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
pm: TTPMParams;
DisplayPoint: TPoint;
r: TRect;
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0 );
r.top := r.bottom + 1;
r.bottom := Screen.height;
DisplayPoint := Point(r.right div 2, r.top);
with pm, pm.rcexclude do
begin
Top := r.top;
Bottom := r.bottom;
Left := 0;
Right := screen.width;
cbSize := SizeOf(pm);
end;
TrackPopupMenuEx(PopupMenu1.Handle, TPM_VERTICAL or TPM_HORIZONTAL,
DisplayPoint.x, DisplayPoint.y, Handle, @pm);
end;
procedure TForm1.Menu1Click(Sender: TObject);
begin
ShowMessage('Click Test Menu');
end;
end.