Using Menu Creation Functions
9/9/2008
Usar funções de criação menu quando você desejar para criar ou alteração um menu em tempo de execução. Para criar um vazio barra de menus, use o CreateMenu função; Para criar um vazio menu, use o CreatePopupMenu função. Para adicionar itens a um menu, use o AppendMenu e InsertMenu funções.
O seguinte exemplo de código mostra como criar um vazio menu usando CreatePopupMenue como adicionar itens de menu usando AppendMenu.
HMENU hmTrackPopup; // The popup menu to track.
// Create the popup menu.
hmTrackPopup = CreatePopupMenu();
// Append some items.
AppendMenu(hmTrackPopup,MF_STRING, 1000,TEXT("Append Item 1"));
AppendMenu(hmTrackPopup,MF_STRING, 1001, TEXT("Append Item 2"));
Quando um menu contém mais itens do que caberá em uma coluna, o menu será truncado, a menos que você forçar um quebra de linha. Você pode causar um interromper coluna para ocorrer em um item específico em um menu por atribuição o sinalizador tipo MFT_MENUBREAK menu item para o item. Windows Embedded CE coloca esse item e todos os itens subseqüentes em uma nova coluna. Você também pode atribuir o sinalizador tipo MFT_MENUBARBREAK menu item para o item, que tem o mesmo efeito como o sinalizador tipo item menu MFT_MENUBREAK Except that um linha vertical aparece entre as colunas novas e existentes.
Para exibir um menu atalho, use o TrackPopupMenuEx função. Menus de atalho, também chamado flutuante pop-up menus ou menus contexto, são geralmente exibidos quando a mensagem WM_CONTEXTMENU é processada. O mais antigo TrackPopupMenu função for com suporte, mas os aplicativos novos devem usar o TrackPopupMenuEx função.
O seguinte mostra exemplo de código como para exibir um menu de atalho usando TrackPopupMenuEx.
case WM_LBUTTONDOWN:
{
WORD xPos = LOWORD(lParam); // horizontal position of the cursor
WORD yPos = HIWORD(lParam); // vertical position of the cursor
if (fTrack && hmTrackPopup){
TrackPopupMenuEx(hmTrackPopup,0, xPos, yPos, hWnd, NULL);
}
}
break;
Se um menu é atribuído a uma janela e essa janela for destruída, Windows Embedded CE automaticamente destrói o menu, liberando o identificador menu e a memória ocupada pelo menu. Windows Embedded CE não automaticamente destruir um menu que não esteja atribuída a uma janela. Um aplicativo deve destruir o não atribuído menu por chamado de DestroyMenu função.
O seguinte mostra como destruir um menu usando a função DestroyMenu exemplo de código.
// Ensure that the old menu is gone.
DestroyMenu(hmTrackPopup);
hmTrackPopup = NULL;
See Also
Concepts
Creating Menus
Using Resources