When the Delphi VCL framework creates an application, tapplication is an automatically created hidden window, and other created windows are automatically taken as windows, as a result, there are only three system menus in the created main window in the taskbar. You only need to replace the system menu with the system menu of application in the create event of the main window, it is normal to forward the SYSCOMMAND message to the main window.
Unit unit1;
Interface
Uses
Windows, messages, sysutils, variants, classes, graphics, controls, forms,
Dialogs;
Type
Tform1 = Class (tform)
Procedure formcreate (Sender: tobject );
Private
Procedure onmessage (var msg: tmsg; var handled: Boolean );
Public
{Public declarations}
End;
VaR
Form1: tform1;
Implementation
{$ R *. DFM}
Procedure tform1.formcreate (Sender: tobject );
Begin
Getsystemmenu (application. Handle, true );
Application. onmessage: = onmessage;
End;
Procedure tform1.onmessage (var msg: tmsg; var handled: Boolean );
Begin
Case MSG. Message
Wm_syscommand:
Begin
Sendmessage (handle, MSG. Message, MSG. wparam, MSG. lparam );
Handled: = true;
End;
End;
End;
End.