CSplitButton::SetDropDownMenu
Define o menu suspenso que é exibido quando um usuário clica na seta suspensa do controle de botão split atual.
void SetDropDownMenu(
UINT nMenuId,
UINT nSubMenuId
);
void SetDropDownMenu(
CMenu* pMenu
);
Parâmetros
Parâmetro |
Descrição |
---|---|
[in] nMenuId |
A identificação de recurso de barra de menu. |
[in] nSubMenuId |
A identificação de recurso de um submenu. |
[in] pMenu |
Ponteiro para um objeto de CMenu que especifica um submenu.O objeto de CSplitButton exclui o objeto de CMenu e seu HMENU associado ao objeto de CSplitButton sai do escopo. |
Requisitos
Cabeçalho: afxcmn.h
Este método é suportado em Windows Vista e posteriormente.
Os requisitos adicionais para o método são descritos em Criar requisitos de controles comuns do Windows Vista.
Comentários
O parâmetro de nMenuId identifica uma barra de menus, que é uma lista de itens horizontal de barra de menu.O parâmetro de nSubMenuId é um número de índice com base zero que identifica um submenu, que é a lista suspensa de itens de menu associados a cada item de barra de menu.Por exemplo, um aplicativo típico tem um menu que contém os itens de barra de menu “,” edição Arquivo, “,” e “ajuda”. O item de barra de menu “de Arquivo” tem um submenu que contém os itens de menu Abrir”, “, “end” e “exit”. Quando a seta suspensa do controle de dividido botão é clicado, o controle exibe o submenu especificado, não a barra de menus.
A figura a seguir descreve um caixa de diálogo que contém um controle de paginação e (1) um controle de botão de divisão.A seta suspensa (2) já foi clicado e o submenus (3) é exibido.
Exemplo
A primeira declaração no exemplo de código demonstra o método de CSplitButton::SetDropDownMenu .Criamos o menu com o editor de recursos do Visual Studio, que chamado automaticamente a identificação de barra de menu, IDR_MENU1.O parâmetro de nSubMenuId , que é zero, refere-se ao único submenu de barra de menu.
// Initialize the dropdown menu of the splitbutton control.
m_splitButton.SetDropDownMenu(IDR_MENU1, 0);
// Create the pager control.
BOOL nRet;
CRect rect;
GetClientRect(&rect);
nRet = m_pager.Create(
(WS_VISIBLE | WS_CHILD | PGS_HORZ),
CRect(rect.Width()/4, 5, (rect.Width() * 3)/4, 55),
this,
IDC_PAGER1);
m_pager.GetClientRect( &rect );
nRet = m_button.Create(
_T("This is a very, very long button. 012345678901234567890"),
(WS_VISIBLE | WS_CHILD), // Do not use CCS_NORESIZE.
CRect(0,0,rect.Width(),30),
&m_pager, IDC_BUTTON1);
m_pager.SetChild(m_button.m_hWnd);
m_pager.SetButtonSize( 20 );
m_pager.SetBorder( 1 );