Freigeben über


CWnd::GetSystemMenu

Ermöglicht die Anwendung, auf das Systemmenü für das Kopieren und Änderung zuzugreifen.

CMenu* GetSystemMenu( 
   BOOL bRevert  
) const;

Parameter

  • bRevert
    Gibt die Aktion an auszuführenden. Wenn bRevertFALSE ist, gibt GetSystemMenu ein Handle für eine Kopie des Systemmenüs derzeit zurück. Diese Kopie ist identisch, zuerst das Systemmenü kann jedoch geändert werden. Wenn bRevertTRUE ist, fügt GetSystemMenu das Systemmenü zurück an den Standardzustand zurück. Das vorherige, möglicherweise geändert, Systemmenü ggf. zerstört wird. Der Rückgabewert wird in diesem Fall nicht definiert.

Rückgabewert

Gibt eine Kopie des Systemmenüs, wenn bRevertFALSE ist. Wenn bRevertTRUE ist, wird der Rückgabewert nicht definiert.

Der zurückgegebene Zeiger ist möglicherweise und sollte nicht für die spätere Verwendung gespeichert werden temporär.

Hinweise

Jedes Fenster, das nicht GetSystemMenu verwendet, um eine eigene Kopie des Systemmenü zu erstellen, erhält das Standardsteuerelementmenü.

Der Zeiger, der durch die GetSystemMenu-Memberfunktion zurückgegeben wird, kann mit den CMenu::AppendMenu, CMenu::InsertMenu oder CMenu::ModifyMenu-Funktionen verwendet werden, um das Systemmenü zu ändern.

Das Systemmenü enthält zuerst die Elemente, die mit verschiedenen ID-Werten wie SC_CLOSE, SC_MOVE und SC_SIZE identifiziert werden. Elemente im Systemmenü generieren WM_SYSCOMMAND Meldungen. Alle vordefinierten Systemmenüelemente haben die ID-Nummern, die größer als 0xF000 sind. Wenn eine Anwendung Elemente dem Systemmenü hinzufügt, sollte sie ID-Nummern verwenden weniger als F000.

Windows stellt möglicherweise automatisch Elemente nicht verfügbar auf dem Standardsteuerelementmenü. CWnd kann seine eigene Auswahl oder Nichtverfügbarkeit durchführen, indem Sie auf die WM_INITMENU Meldungen reagiert, die gesendet werden, bevor ein Menü angezeigt wird.

Beispiel

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

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CWnd-Klasse

Hierarchiediagramm

CMenu::AppendMenu

CMenu::InsertMenu

CMenu::ModifyMenu

GetSystemMenu