Compartir a través de


CWnd::GetSystemMenu

Permite a la aplicación para tener acceso al menú de Control para copiar y modificación.

CMenu* GetSystemMenu( 
   BOOL bRevert  
) const;

Parámetros

  • bRevert
    Especifica la acción que se realizarán. Si bRevert es FALSO, GetSystemMenu devuelve un identificador a una copia del menú de Control actualmente en uso. Esta copia inicialmente es idéntica al menú de Control pero se puede modificar. Si bRevert es TRUE, GetSystemMenu restablece el menú de Control al estado predeterminado. El anterior, modificado posiblemente, menú de Control, si existe, se destruye. El valor devuelto no está definido en este caso.

Valor devuelto

Identifica una copia del menú de Control si bRevert es FALSO. si bRevert es TRUE, el valor devuelto es indefinido.

el puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Cualquier ventana que no utilice GetSystemMenu para realizar su propia copia del menú de Control recibe el menú de control estándar.

El puntero devuelto por la función miembro de GetSystemMenu se puede utilizar con las funciones de CMenu:: AppendMenu, de CMenu:: InsertMenu, o de CMenu:: ModifyMenu para cambiar el menú de Control.

El menú de Control inicialmente contiene elementos identificados con distintos valores de identificador como SC_CLOSE, SC_MOVE, y SC_SIZE. Los elementos del menú de Control generan mensajes de WM_SYSCOMMAND . Todos los elementos predefinidos de CONTROL-menú tienen números de identificación mayores que 0xF000. Si una aplicación agrega elementos al menú de Control, debe utilizar los números de identificación menos que F000.

Windows puede realizar automáticamente elementos no disponibles en el menú de control estándar. CWnd puede realizar su propia selección o indisponibilidad en respuesta a los mensajes de WM_INITMENU , que se envían antes de enviar cualquier menú.

Ejemplo

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

Requisitos

encabezado: afxwin.h

Vea también

Referencia

CWnd (clase)

Gráfico de jerarquías

CMenu::AppendMenu

CMenu::InsertMenu

CMenu::ModifyMenu

GetSystemMenu