Condividi tramite


CWnd::GetSystemMenu

Consente all'applicazione di accedere ai menu di controllo per copiare e la modifica.

CMenu* GetSystemMenu( 
   BOOL bRevert  
) const;

Parametri

  • bRevert
    Specifica l'azione da intraprendere. Se bRevert è FALSE, GetSystemMenu restituisce attualmente handle a una copia dei menu di controllo in. Questa copia inizialmente è identica ai menu del controllo ma può essere modificata. Se bRevert è TRUE, GetSystemMenu vengono ripristinati i menu di controllo nuovamente lo stato predefinito. Il precedente, probabilmente modificato, menu di controllo, se presente, viene eliminato. Il valore restituito è definito in questo caso.

Valore restituito

Identifica una copia dei menu di controllo se bRevert è FALSE. Se bRevert è TRUE, il valore restituito è definito.

Il puntatore restituito può essere temporanei e non deve essere archiviata per un utilizzo successivo.

Note

Qualsiasi finestra che non utilizza GetSystemMenu per creare la propria copia dei menu di controllo riceve i menu di controllo standard.

Il puntatore restituito dalla funzione membro GetSystemMenu può essere utilizzato con le funzioni CMenu::AppendMenu, CMenu::InsertMenu, o CMenu::ModifyMenu per modificare i menu di controllo.

I menu del controllo contengono inizialmente gli elementi identificati con diversi valori ID come SC_CLOSE, SC_MOVEe SC_SIZE. Gli elementi nei menu di controllo generano messaggi WM_SYSCOMMAND. Tutti gli elementi predefiniti del controllo menu hanno numeri ID maggiori di 0xF000. Se un'applicazione aggiunge gli elementi nei menu di controllo, deve contenere numeri ID minore di F000.

Windows può automaticamente preparare gli elementi non disponibili nei menu di controllo standard. CWnd può effettuare una selezione o indisponibilità risposta ai messaggi WM_INITMENU, che viene inviato prima di tutto il menu visualizza.

Esempio

// 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

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe CWnd

Grafico delle gerarchie

CMenu::AppendMenu

CMenu::InsertMenu

CMenu::ModifyMenu

GetSystemMenu