![]() |
Systemmenü eines Progs ändern
Liste der Anhänge anzeigen (Anzahl: 1)
Wie kann man das Systemmenü (s. Anhang) eines Progs ändern. Ich möchte alle Standarteintäge löschen und meine eigenen hinzufügen. Ich weiß nur wie man die Einträge des Menüs ändern kann das sich öffnet, wenn man mit rechten Maustaste auf die Titelleiste des Fensters klickt.
|
Re: Systemmenü eines Progs ändern
schau dir mal die funktionen
- GetMenu - SetMenu - InsertMenuItem etc. an (die hilfe verweist unter den einzelnen einträgen auf weitere funktionen (bzw. das msdn)) |
Re: Systemmenü eines Progs ändern
Also mich interessiert das auch aber ich komm mit InserMEnuItem nicht zurecht:
Was ist PMenu??? und welche Parameter muss ich noch angeben? Aus der Hilfe werd ich au net Schlau :( |
Re: Systemmenü eines Progs ändern
Ich werd aus der Hilfe auch nicht wirklich schlau :(
Könnte vielleicht mal jemand ein Beispiel machen. |
Re: Systemmenü eines Progs ändern
Delphi-Quellcode:
Schaltfläche eins entfernt den Menüpunkt "Schließen" und Schaltfläche zwei fügt einen Menüpunkt hinzu, den man sogar anklicken kann und es passiert was.
type
TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } procedure WndProc(var msg: TMessage); override; end; var Form1 : TForm1; implementation {$R *.dfm} const MY_MENU_ID = 999; procedure TForm1.Button1Click(Sender: TObject); var hMenu : THandle; begin hMenu := GetSystemMenu(Handle, False); if hMenu <> 0 then begin if not DeleteMenu(hMenu, 6, MF_BYPOSITION) then ShowMessage(SysErrorMessage(GetLastError)); DrawMenuBar(hMenu); end; end; procedure TForm1.Button2Click(Sender: TObject); var hMenu : THandle; begin hMenu := GetSystemMenu(Handle, False); if hMenu <> 0 then begin if not InsertMenu(hMenu, 6, MF_BYPOSITION, MY_MENU_ID, 'Mein Menüitem') then ShowMessage(SysErrorMessage(GetLastError)); DrawMenuBar(hMenu); end; end; procedure TForm1.WndProc(var msg: TMessage); begin inherited; case msg.Msg of WM_SYSCOMMAND: begin if hiword(msg.WParam) = 0 then begin case loword(msg.WParam) of MY_MENU_ID: ShowMessage('Buuuh!'); end; end; end; end; end; |
Re: Systemmenü eines Progs ändern
Thx. Werd mir des mal angucken...
|
Re: Systemmenü eines Progs ändern
Sorry wenn ich den etwas älteren Thread ausgrabe, aber irgend wie will das bei mir unter XP nicht gehen. Ich bekomm mein Menu nicht. Jemand ne Idee?
[Edit] ok hat sich erledigt. :) Sollte wohl drauf achten auch wirklich das Handle der Anwendung zu holen und nicht die des Fensters :) |
Re: Systemmenü eines Progs ändern
|
Re: Systemmenü eines Progs ändern
Noch eine ergänzende Frage:
Wie kann ich da einen Radio-Button draus machen? Also so zum Anhaken (unter XP zum Anpunkten *g*). Ich wills nämlich für "Always on Top" haben.... |
Re: Systemmenü eines Progs ändern
Guck dir meine
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 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