AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Sonstiges Kein PopUp-Menü bei Klick auf's Icon in der Titelleiste
Thema durchsuchen
Ansicht
Themen-Optionen

Kein PopUp-Menü bei Klick auf's Icon in der Titelleiste

Ein Thema von Matze · begonnen am 28. Apr 2004
Antwort Antwort
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Kein PopUp-Menü bei Klick auf's Icon in der Titelleiste

  Alt 28. Apr 2004, 12:21
Beim Klick auf das kleine Icon oben links einer Titelleiste wird bekanntlich ein kleines PopUp-Fenster geöffnet.

Verhindern lässt sich dies mit folgendem Code:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
    procedure WMNcrButtonDown(var Msg: TMessage); message WM_NCRBUTTONDOWN;
    procedure WMSyscommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
    procedure WMNCLButtonDblClk(var Msg: TMessage); message WM_NCLBUTTONDBLCLK;
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM} 

// Rechte Maustaste auf Titelleiste unterdrücken.
procedure TForm1.WMNcrButtonDown(var Msg: TMessage);
begin
  if Msg.wParam = HTCAPTION then
    Msg.Result := 0;
end;

// Evtl Doppelklick auf App. Icon unterdrücken
procedure TForm1.WMNCLButtonDblClk(var Msg: TMessage);
begin
  if Msg.wParam = HTCAPTION then
    Msg.Result := 0;
end;

// Klick auf App. Icon unterdürcken
procedure TForm1.WMSyscommand(var Msg: TWMSysCommand);
begin
  case (Msg.CmdType and $FFF0) of
    SC_MOUSEMENU:
      Msg.Result := 0;
    else
      inherited;
  end;
end;

Kurze Erklärung des Codes:

WM_NCRBUTTONDOWN ist ein Klick mit der rechten Maustaste in die NonClientAera des Fensters, also in den Nicht-Anwendungsbereich.
Der wParam der Nachricht ist das Ziel, wohin geklickt wurde.
Wurde auf die Titelleiste geklickt (HTCAPTION), dann wird die Nachricht umgebeogen bzw. verschluckt, in dem nicht darauf reagiert wird.
Gleiches Vorgehen bei WM_NCLBUTTONDBLCLK.

Wird mit WM_SYSCOMMAND normalerweise das Mausmenü geöffnet, wird dies auch wieder verschluckt.



Diesen Code hat toms in diesem Thread veröffentlicht.

Die Erklärung stammt von Luckie.
  Mit Zitat antworten Zitat
Antwort Antwort

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz