Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#17

Re: Onclick und rechte Maustaste!

  Alt 4. Feb 2006, 14:41
Du hast ja inzwischen schon so einige Hebel in Bewegung gesetzt (z.B. hier )

Zu deiner PN: ich hatte gestern wirklich etwas Zeit und bin so weit gekommen, dass ich die WM_RBUTTONDOWN-Meldung auf dem Popup-Fenster abfangen kann, allerdings fehlt noch die Lokalisierung des betreffenden TTBItem mit Hilfe der Koordinaten.

Bis jetzt:
Delphi-Quellcode:
var
  HookHandle: THandle;

function HookRightButton(nCode: Integer; wp: WPARAM; lp: LPARAM): LRESULT;
  stdcall;
var
  Wnd: TWinControl;
  Pnt: TPoint;
begin
  if nCode = HC_ACTION then
  begin
    with PMsg(lp)^ do
      if message = WM_RBUTTONDOWN then
      begin
        Wnd := Controls.FindControl(hWnd);
        if Wnd is TTBToolbar then
        begin
          Pnt := SmallPointToPoint(TSmallPoint(lParam));
          // ...
        end;
      end;
  end;

  Result := CallNextHookEx(HookHandle, nCode, wp, lp);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  HookHandle := SetWindowsHookEx(WH_GETMESSAGE, HookRightButton, 0, GetCurrentThreadId);
end;
An der Stelle mit ... fehlen halt noch einige Überprüfungen.

Wichtig: du solltest an der gehookten Stellen nicht selbst etwas tun, sondern dir einfach per PostMessage eine selbstdefinierte Meldung an das Hauptfenster schicken und dort dann ggf. eine Aktion vornehmen.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat