Compartilhar via


Estrutura MENUITEMINFOW (winuser.h)

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

Sintaxe

typedef struct tagMENUITEMINFOW {
  UINT      cbSize;
  UINT      fMask;
  UINT      fType;
  UINT      fState;
  UINT      wID;
  HMENU     hSubMenu;
  HBITMAP   hbmpChecked;
  HBITMAP   hbmpUnchecked;
  ULONG_PTR dwItemData;
  LPWSTR    dwTypeData;
  UINT      cch;
  HBITMAP   hbmpItem;
} MENUITEMINFOW, *LPMENUITEMINFOW;

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 fType .
MIIM_ID
0x00000002
Recupera ou define o membro wID .
MIIM_STATE
0x00000001
Recupera ou define o membro 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_FTYPE e 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_SEPARATOR e MFT_STRING não podem ser combinados uns com os outros. Defina fMaskcomo MIIM_TYPE para 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
Places 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 do antigo.
MFT_MENUBREAK
0x00000040L
Places 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 para a janela que possui o menu. A janela recebe uma mensagem WM_MEASUREITEM antes que o menu seja exibido pela primeira vez e uma mensagem 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 marcar se o membro hbmpChecked for NULL.
MFT_RIGHTJUSTIFY
0x00004000L
Justifica com o botão direito do mouse o item de menu e todos 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
0x000000000L
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 como MIIM_STATE para 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 valor 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 valor padrão.

wID

Tipo: UINT

Um valor definido pelo aplicativo que identifica o item de menu. Defina fMask como MIIM_ID para usar o 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 abre um menu suspenso ou submenu, esse membro será NULL. Defina fMask como MIIM_SUBMENU para usar hSubMenu.

hbmpChecked

Tipo: HBITMAP

Um identificador para o bitmap a ser exibido ao lado do item se ele estiver selecionado. Se esse membro for 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 marcar. Defina fMask como MIIM_CHECKMARKS para 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 for NULL, nenhum bitmap será usado. Defina fMaskcomo MIIM_CHECKMARKS para usar hbmpUnchecked.

dwItemData

Tipo: ULONG_PTR

Um valor definido pelo aplicativo associado ao item de menu. Defina fMask como MIIM_DATA para 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 membro dwTypeData de MENUITEMINFO como 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 cch e 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 fType .

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

dwTypeData será usado somente se o sinalizador MIIM_STRING estiver definido no membro 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 MIIM_TYPE estiver definido no membro fMask e for zero caso contrário. 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 para o comprimento do buffer apontado pelo membro dwTypeData . Se o item de menu recuperado for do tipo MFT_STRING (conforme indicado pelo membro fType ), GetMenuItemInfo alterará 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 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 MIIM_BITMAP é definido no membro 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.

Comentários

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

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

Observação

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 de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

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

Confira também

Conceitual

Getmenuiteminfo

InsertMenuItem

Menus

Referência

Setmenuiteminfo

WM_DRAWITEM

WM_MEASUREITEM