Einzelnen Beitrag anzeigen

blackfin
(Gast)

n/a Beiträge
 
#4

AW: Rechtsklick in Flashplayer abfangen

  Alt 8. Sep 2010, 16:49
Du kannst es damit versuchen, die Message WM_RBUTTONDOWN abzufangen und somit auf einen rechten Mausklick + Koordinaten prüfen / reagieren.
Wenn die Mausklick-Koordinaten dann innerhalb des Rects des Flashmovies sind, die Message als "handled" gelten lassen und schon ist das Popup-Menü passé.
Ich hab sowas schonmal gemacht, um genau dieses Flash-Menü zu deaktivieren, allerdings habe ich da den Mausklick generell für das gesamte Delphi-Programm abgeschaltet.
(weil er da eh keine Verwendung hatte..und....reine Faulheit natürlich )

Wenn du den rechten Mausklick in deinem Programm anderweitig brauchst, musst du in meinem Code eben noch eine Prüfung auf den lParam der Message einbauen, der angibt, wo geklickt wurde (X/Y der Client-Area) und dann dementsprechend den Mausklick erlauben oder nicht.
Hier die Message-beschreibung im MSDN: WM_RBUTTONDOWN

Application.OnMessage := Form1.NoFlashRightClick ; ...
..
Delphi-Quellcode:
procedure Form1.NoFlashRightClick(var Msg: TMsg; var Handled: Boolean) ;
begin
   // hier noch durch eine Prüfung ergänzen, wo geklickt wurde (durch den Msg.lParam)

  if((Msg.message = WM_RBUTTONDOWN) and (Msg.wParam = MK_RBUTTON)) then
  begin
    Handled := true ;
  end
  else
  begin
    Handled := false ;
  end;
end;

Mit der linken Maustaste verhält es sich genauso, nur ist das dann natürlich die Message WM_LBUTTONDOWN

Geändert von blackfin ( 8. Sep 2010 um 16:58 Uhr)
  Mit Zitat antworten Zitat