CWnd::GetSystemMenu

Permet à l'application d'accéder au menu de contrôle pour copier et modification.

CMenu* GetSystemMenu(
   BOOL bRevert 
) const;

Paramètres

  • bRevert
    Spécifie l'action à effectuer.Si bRevert est FALSE, GetSystemMenu retourne un handle vers une copie du menu du contrôle en cours de utilisation.Cette copie est initialement identique au menu de contrôle mais peut être modifiée.Si bRevert est TRUE, GetSystemMenu réinitialise le menu de contrôle vers l'état par défaut.Le menu précédent, sans modification, le contrôle, le cas échéant, est détruit.La valeur de retour est non définie dans ce cas.

Valeur de retour

Identifie une copie du menu de contrôle si bRevert est FALSE.Si bRevert est TRUE, la valeur de retour est pas définie.

Le pointeur retourné peut être temporaire et ne doit pas être enregistré pour une utilisation ultérieure.

Notes

Toute fenêtre qui n'utilise pas GetSystemMenu pour tirer sa propre copie du menu de contrôle reçoit le menu de contrôle standard.

Le pointeur retourné par la fonction membre d' GetSystemMenu peut être utilisé avec les fonctions de CMenu::AppendMenu, de CMenu::InsertMenu, ou de CMenu::ModifyMenu pour modifier le menu de contrôle.

Le menu du contrôle contient initialement des éléments identifiés par des valeurs d'ID telles que SC_CLOSE, SC_MOVE, et SC_SIZE.Les éléments du menu de contrôle génèrent des messages de WM_SYSCOMMAND .Tous les éléments prédéfinis de contrôle menu ont des numéros d'ID supérieurs à 0xF000.Si une application ajoute des éléments au menu de contrôle, elle doit utiliser des numéros d'ID moins que F000.

Les fenêtres peuvent rendre automatiquement des éléments non disponibles dans le menu de contrôle standard.CWnd peut effectuer sa propre choix ou indisponibilité en réponse à des messages de WM_INITMENU , qui sont envoyés avant tout menu est affiché.

Exemple

// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
   CString strAboutMenu;
   strAboutMenu.LoadString(IDS_ABOUT);
   if (!strAboutMenu.IsEmpty())
   {
      pSysMenu->AppendMenu(MF_SEPARATOR);
      pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
   }
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE);   // Set big icon
SetIcon(m_hIcon, FALSE);  // Set small icon

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CWnd, classe

Graphique de la hiérarchie

CMenu::AppendMenu

CMenu::InsertMenu

CMenu::ModifyMenu

GetSystemMenu