Compartilhar via


Using Menu Creation Functions

Windows Mobile Not SupportedWindows Embedded CE Supported

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

Other Resources

GWES Application Development