Compartilhar via


CWnd::GetSystemMenu

Permite o aplicativo acesse o menu de controle para copiar e alteração.

CMenu* GetSystemMenu( 
   BOOL bRevert  
) const;

Parâmetros

  • bRevert
    Especifica a ação a ser tomada. Se bRevert é Falso, GetSystemMenu retorna um identificador para uma cópia do menu de controle atualmente em uso. Esta cópia é inicialmente idêntica ao controle de menu mas pode ser alterado. Se bRevert é Verdadeiro, GetSystemMenu redefine o menu de controle de volta para o estado padrão. O anterior, alterado, possivelmente menu de controle, se houver, é destruído. O valor de retorno é indefinido em esse caso.

Valor de retorno

Identifica uma cópia do menu de controle se bRevert é Falso. Se bRevert é Verdadeiro, o valor de retorno é indefinido.

O ponteiro retornado pode ser temporário e não deve ser armazenado para uso posterior.

Comentários

Qualquer janela que não usar GetSystemMenu para fazer sua própria cópia do menu de controle recebe o menu de controle padrão.

O ponteiro retornado pela função de membro de GetSystemMenu pode ser usado com as funções de CMenu::AppendMenu, de CMenu::InsertMenu, ou de CMenu::ModifyMenu para alterar o menu de controle.

O menu de controle contém inicialmente os itens identificados com vários valores de identificação como SC_CLOSE, SC_MOVE, e SC_SIZE. Os itens de menu de controle geram mensagens de WM_SYSCOMMAND . Todos os itens pré-definidos do menu tem os números de identificação maiores do que 0xF000. Se um aplicativo adiciona itens de menu para o controle, ele deve usar números de identificação menor que F000.

O windows podem automaticamente fazer itens não disponível no menu de controle padrão. CWnd pode executar sua própria seleção ou indisponibilidade responder às mensagens de WM_INITMENU , que são enviadas antes que qualquer menu é exibido.

Exemplo

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

Cabeçalho: afxwin.h

Consulte também

Referência

CWnd Class

Gráfico da hierarquia

CMenu::AppendMenu

CMenu::InsertMenu

CMenu::ModifyMenu

GetSystemMenu