AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Aufruf des Systemmenü eines Fensters verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Aufruf des Systemmenü eines Fensters verhindern

Ein Thema von TUX_der_Pinguin · begonnen am 17. Feb 2017 · letzter Beitrag vom 17. Feb 2017
 
EWeiss
(Gast)

n/a Beiträge
 
#16

AW: Aufruf des Systemmenü eines Fensters verhindern

  Alt 17. Feb 2017, 13:54
Zitat:
Warum weil das Systemmenü obwohl nicht sichtbar doch den Focus oder sonst was bekommen hat. Du darfst das gerne selbst testen.
Was nicht existiert kann keinen Focus bekommen.

So es gibt kein SysMenu mehr überprüfe das einfach anhand der GWL_STYLE
Weder Unsichtbar noch sonst was.
Du kannst aber das Window nun trotzdem verschieben.

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var
  Menu: HMENU;
  MenuItems: Integer;
  i: Integer;
  Style: DWord;
begin

  Menu := GetSystemMenu(Handle, false);
  if Menu <> 0 then
  begin
    MenuItems := GetMenuItemCount(Menu);
    if MenuItems <> 0 Then
      for i := MenuItems - 1 DownTo 0 do
        RemoveMenu(Menu, i, MF_BYPOSITION);
  end;

  Style := GetWindowLong(Handle, GWL_STYLE);
  Style := Style and not WS_SYSMENU;
  SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, Style)
    or WS_BORDER or WS_SIZEBOX or WS_DLGFRAME or WS_OVERLAPPED);
end;
Entferne den Button auf der Form addiere dein ominöses
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_ESCAPE then
   begin
     Close;
   end;
end;
Klick einmal die ESC Taste dann beendet sich die Anwendung sofort.

Geändert von EWeiss (11. Jul 2019 um 15:46 Uhr)
  Mit Zitat antworten Zitat
 


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 13:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz