I. Mettre une commande dans le menu Système▲
Dans le fichier Unit.h, on définit une constante pour la commande CM_MONMSG. On déclare la fonction ReponseMessage et le Handle de menu MyMenu. Puis on dirige le message WM_SYSCOMMAND vers la fonction ReponseMessage.
Sélectionnez
#define CM_MONMSG 401
class
TForm1 : public
TForm
{
__published
:
// Composants gérés par l'EDI
void
__fastcall FormCreate(TObject *
Sender);
private
:
// Déclarations de l'utilisateur
HMENU MyMenu;
void
__fastcall ReponseMessage(TMessage &
Msg);
public
:
// Déclarations de l'utilisateur
__fastcall TForm1(TComponent*
Owner);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage, ReponseMessage);
END_MESSAGE_MAP(TForm)
}
;
Dans le fichier Unit.cpp, on crée la commande de menu du menu système sur l'événement OnCreate de la Form (Form1). On définit la fonction ReponseMessage :
Sélectionnez
void
__fastcall TForm1::
FormCreate(TObject *
Sender)
{
MyMenu =
GetSystemMenu(Handle,FALSE);
AppendMenu(MyMenu,MF_SEPARATOR ,NULL
,NULL
);//ajoute un séparateur
AppendMenu(MyMenu,NULL
,CM_MONMSG , "A Propos !"
);
}
void
__fastcall TForm1::
ReponseMessage(TMessage &
Msg)
{
if
(Msg.WParam ==
CM_MONMSG)
ShowMessage("Message Reçu"
);
else
TForm::
Dispatch(&
Msg);
}