Compartilhar via


Estrutura MENUITEMINFOA (winuser.h)

Contém informações sobre um item de menu.

Sintaxe

typedef struct tagMENUITEMINFOA {
  UINT      cbSize;
  UINT      fMask;
  UINT      fType;
  UINT      fState;
  UINT      wID;
  HMENU     hSubMenu;
  HBITMAP   hbmpChecked;
  HBITMAP   hbmpUnchecked;
  ULONG_PTR dwItemData;
  LPSTR     dwTypeData;
  UINT      cch;
  HBITMAP   hbmpItem;
} MENUITEMINFOA, *LPMENUITEMINFOA;

Membros

cbSize

Tipo: UINT

O tamanho da estrutura, em bytes. O chamador deve definir esse membro como sizeof(MENUITEMINFO).

fMask

Tipo: UINT

Indica os membros a serem recuperados ou definidos. Esse membro pode ser um ou mais dos valores a seguir.

Valor Significado
MIIM_BITMAP
0x00000080
Recupera ou define o membro hbmpItem.
MIIM_CHECKMARKS
0x00000008
Recupera ou define os membros hbmpChecked e hbmpUnchecked.
MIIM_DATA
0x00000020
Recupera ou define o membro dwItemData.
MIIM_FTYPE
0x00000100
Recupera ou define o membro do fType.
MIIM_ID
0x00000002
Recupera ou define o membro wID .
MIIM_STATE
0x00000001
Recupera ou define o membro do fState.
MIIM_STRING
0x00000040
Recupera ou define o membro dwTypeData.
MIIM_SUBMENU
0x00000004
Recupera ou define o membro hSubMenu.
MIIM_TYPE
0x00000010
Recupera ou define os membros fType e dwTypeData.

MIIM_TYPE é substituído por MIIM_BITMAP, MIIM_FTYPEe MIIM_STRING.

fType

Tipo: UINT

O tipo de item de menu. Esse membro pode ser um ou mais dos valores a seguir.

Os valores MFT_BITMAP, MFT_SEPARATORe MFT_STRING não podem ser combinados entre si. Defina fMask para MIIM_TYPE usar fType.

fType será usado somente se fMask tiver um valor de MIIM_FTYPE.

Valor Significado
MFT_BITMAP
0x00000004L
Exibe o item de menu usando um bitmap. A palavra de baixa ordem do membro dwTypeData é o identificador de bitmap e o membro cch é ignorado.

MFT_BITMAP é substituído por MIIM_BITMAP e hbmpItem.

MFT_MENUBARBREAK
0x00000020L
Coloca o item de menu em uma nova linha (para uma barra de menus) ou em uma nova coluna (para um menu suspenso, submenu ou menu de atalho). Para um menu suspenso, submenu ou menu de atalho, uma linha vertical separa a nova coluna da antiga.
MFT_MENUBREAK
0x00000040L
Coloca o item de menu em uma nova linha (para uma barra de menus) ou em uma nova coluna (para um menu suspenso, submenu ou menu de atalho). Para um menu suspenso, submenu ou menu de atalho, as colunas não são separadas por uma linha vertical.
MFT_OWNERDRAW
0x00000100L
Atribui a responsabilidade de desenhar o item de menu à janela que possui o menu. A janela recebe uma mensagem WM_MEASUREITEM antes que o menu seja exibido pela primeira vez e uma mensagem de WM_DRAWITEM sempre que a aparência do item de menu precisar ser atualizada. Se esse valor for especificado, o membro dwTypeData conterá um valor definido pelo aplicativo.
MFT_RADIOCHECK
0x00000200L
Exibe itens de menu selecionados usando uma marca de botão de opção em vez de uma marca de seleção se o membro hbmpChecked estiver NULL.
MFT_RIGHTJUSTIFY
0x00004000L
Justifica com o botão direito do mouse o item de menu e os itens subsequentes. Esse valor será válido somente se o item de menu estiver em uma barra de menus.
MFT_RIGHTORDER
0x00002000L
Especifica que os menus são em cascata da direita para a esquerda (o padrão é da esquerda para a direita). Isso é usado para dar suporte a idiomas da direita para a esquerda, como árabe e hebraico.
MFT_SEPARATOR
0x00000800L
Especifica que o item de menu é um separador. Um separador de item de menu aparece como uma linha divisória horizontal. Os membros dwTypeData e cch são ignorados. Esse valor é válido apenas em um menu suspenso, submenu ou menu de atalho.
MFT_STRING
0x00000000L
Exibe o item de menu usando uma cadeia de caracteres de texto. O membro dwTypeData é o ponteiro para uma cadeia de caracteres terminada em nulo e o membro cch é o comprimento da cadeia de caracteres.

MFT_STRING é substituído por MIIM_STRING.

fState

Tipo: UINT

O estado do item de menu. Esse membro pode ser um ou mais desses valores. Defina fMask para MIIM_STATE usar fState.

Valor Significado
MFS_CHECKED
0x00000008L
Verifica o item de menu. Para obter mais informações sobre itens de menu selecionados, consulte o membro hbmpChecked.
MFS_DEFAULT
0x00001000L
Especifica que o item de menu é o padrão. Um menu pode conter apenas um item de menu padrão, que é exibido em negrito.
MFS_DISABLED
0x00000003L
Desabilita o item de menu e o cinza para que ele não possa ser selecionado. Isso é equivalente a MFS_GRAYED.
MFS_ENABLED
0x00000000L
Habilita o item de menu para que ele possa ser selecionado. Esse é o estado padrão.
MFS_GRAYED
0x00000003L
Desabilita o item de menu e o cinza para que ele não possa ser selecionado. Isso é equivalente a MFS_DISABLED.
MFS_HILITE
0x00000080L
Realça o item de menu.
MFS_UNCHECKED
0x00000000L
Desmarca o item de menu. Para obter mais informações sobre itens de menu claros, consulte o membro hbmpChecked.
MFS_UNHILITE
0x00000000L
Remove o realce do item de menu. Esse é o estado padrão.

wID

Tipo: UINT

Um valor definido pelo aplicativo que identifica o item de menu. Defina fMask para MIIM_ID usar wID .

hSubMenu

Tipo: HMENU

Um identificador para o menu suspenso ou submenu associado ao item de menu. Se o item de menu não for um item que abra um menu suspenso ou submenu, esse membro será NULL. Defina fMask para MIIM_SUBMENU usar hSubMenu.

hbmpChecked

Tipo: HBITMAP

Um identificador para o bitmap a ser exibido ao lado do item se ele estiver selecionado. Se esse membro estiver NULL, um bitmap padrão será usado. Se o valor do tipo MFT_RADIOCHECK for especificado, o bitmap padrão será um marcador. Caso contrário, será uma marca de seleção. Defina fMask para MIIM_CHECKMARKS usar hbmpChecked.

hbmpUnchecked

Tipo: HBITMAP

Um identificador para o bitmap a ser exibido ao lado do item se ele não estiver selecionado. Se esse membro estiver NULL, nenhum bitmap será usado. Defina fMask para MIIM_CHECKMARKS usar hbmpUnchecked.

dwItemData

Tipo: ULONG_PTR

Um valor definido pelo aplicativo associado ao item de menu. Defina fMask para MIIM_DATA usar dwItemData.

dwTypeData

Tipo: LPTSTR

O conteúdo do item de menu. O significado desse membro depende do valor de fType e é usado somente se o sinalizador MIIM_TYPE estiver definido no membro fMask .

Para recuperar um item de menu do tipo MFT_STRING, primeiro localize o tamanho da cadeia de caracteres definindo o dwTypeData membro do MENUITEMINFO NULL e, em seguida, chamando GetMenuItemInfo. O valor de cch+1 é o tamanho necessário. Em seguida, aloque um buffer desse tamanho, coloque o ponteiro para o buffer em dwTypeData, incremente cche chame GetMenuItemInfo mais uma vez para preencher o buffer com a cadeia de caracteres. Se o item de menu recuperado for de algum outro tipo, GetMenuItemInfo definirá o membro dwTypeData como um valor cujo tipo é especificado pelo membro do fType.

Ao usar com a função SetMenuItemInfo, esse membro deve conter um valor cujo tipo é especificado pelo membro do fType.

dwTypeData será usado somente se o sinalizador MIIM_STRING estiver definido no membro do fMask

cch

Tipo: UINT

O comprimento do texto do item de menu, em caracteres, quando as informações são recebidas sobre um item de menu do tipo MFT_STRING. No entanto, cch será usado somente se o sinalizador de MIIM_TYPE estiver definido no membro do fMask e for zero de outra forma. Além disso, cch é ignorado quando o conteúdo de um item de menu é definido chamando SetMenuItemInfo.

Observe que, antes de chamar GetMenuItemInfo, o aplicativo deve definir cch ao comprimento do buffer apontado pelo membro dwTypeData . Se o item de menu recuperado for do tipo MFT_STRING (conforme indicado pelo membro fType), GetMenuItemInfo alterações cch para o comprimento do texto do item de menu. Se o item de menu recuperado for de algum outro tipo, GetMenuItemInfo definirá o campo cch como zero.

O membro cch é usado quando o sinalizador MIIM_STRING é definido no membro do fMask.

hbmpItem

Tipo: HBITMAP

Um identificador para o bitmap a ser exibido ou pode ser um dos valores na tabela a seguir. Ele é usado quando o sinalizador de MIIM_BITMAP é definido no membro do fMask.

Valor Significado
HBMMENU_CALLBACK
((HBITMAP) -1)
Um bitmap desenhado pela janela que possui o menu. O aplicativo deve processar as mensagens WM_MEASUREITEM e WM_DRAWITEM.
HBMMENU_MBAR_CLOSE
((HBITMAP) 5)
Botão Fechar para a barra de menus.
HBMMENU_MBAR_CLOSE_D
((HBITMAP) 6)
Botão Fechar desabilitado para a barra de menus.
HBMMENU_MBAR_MINIMIZE
((HBITMAP) 3)
Botão Minimizar para a barra de menus.
HBMMENU_MBAR_MINIMIZE_D
((HBITMAP) 7)
Botão minimizar desabilitado para a barra de menus.
HBMMENU_MBAR_RESTORE
((HBITMAP) 2)
Botão Restaurar para a barra de menus.
HBMMENU_POPUP_CLOSE
((HBITMAP) 8)
Botão Fechar para o submenu.
HBMMENU_POPUP_MAXIMIZE
((HBITMAP) 10)
Botão Maximizar para o submenu.
HBMMENU_POPUP_MINIMIZE
((HBITMAP) 11)
Botão Minimizar para o submenu.
HBMMENU_POPUP_RESTORE
((HBITMAP) 9)
Botão Restaurar para o submenu.
HBMMENU_SYSTEM
((HBITMAP) 1)
Ícone do Windows ou o ícone da janela especificada em dwItemData.

Observações

A estrutura MENUITEMINFO é usada com as funções GetMenuItemInfo, InsertMenuIteme SetMenuItemInfo.

O menu pode exibir itens usando texto, bitmaps ou ambos.

Nota

O cabeçalho winuser.h define MENUITEMINFO como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
cabeçalho winuser.h (inclua Windows.h)

Consulte também

Conceitual

GetMenuItemInfo

InsertMenuItem

menus

de referência de

SetMenuItemInfo

WM_DRAWITEM

WM_MEASUREITEM