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