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);
}

