Estrutura DRAWITEMSTRUCT (winuser.h)

Fornece informações que a janela do proprietário usa para determinar como pintar um controle ou item de menu desenhado pelo proprietário. A janela proprietário do controle ou item de menu desenhado pelo proprietário recebe um ponteiro para essa estrutura como o parâmetro lParam da mensagem WM_DRAWITEM .

Sintaxe

typedef struct tagDRAWITEMSTRUCT {
  UINT      CtlType;
  UINT      CtlID;
  UINT      itemID;
  UINT      itemAction;
  UINT      itemState;
  HWND      hwndItem;
  HDC       hDC;
  RECT      rcItem;
  ULONG_PTR itemData;
} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;

Membros

CtlType

Tipo: UINT

O tipo de controle. Esse membro pode ser um dos valores a seguir. Consulte Observações.

Valor Significado
ODT_BUTTON
Botão desenhado pelo proprietário
ODT_COMBOBOX
Caixa de combinação desenhada pelo proprietário
ODT_LISTBOX
Caixa de listagem desenhada pelo proprietário
ODT_LISTVIEW
Controle de exibição de lista
ODT_MENU
Item de menu desenhado pelo proprietário
ODT_STATIC
Controle estático desenhado pelo proprietário
ODT_TAB
Controle guia

CtlID

Tipo: UINT

O identificador da caixa de combinação, caixa de listagem, botão ou controle estático. Esse membro não é usado para um item de menu.

itemID

Tipo: UINT

O identificador de item de menu para um item de menu ou o índice do item em uma caixa de listagem ou caixa de combinação. Para uma caixa de listagem ou caixa de combinação vazia, esse membro pode ser -1. Isso permite que o aplicativo desenhe apenas o retângulo de foco nas coordenadas especificadas pelo membro rcItem , embora não haja itens no controle. Isso indica ao usuário se a caixa de listagem ou caixa de combinação tem o foco. Como os bits são definidos no membro itemAction determina se o retângulo deve ser desenhado como se a caixa de listagem ou a caixa de combinação tiver o foco.

itemAction

Tipo: UINT

A ação de desenho necessária. Esse membro pode ser um ou mais dos valores.

Valor Significado
ODA_DRAWENTIRE
Todo o controle precisa ser desenhado.
ODA_FOCUS
O controle perdeu ou ganhou o foco do teclado. O membro itemState deve ser verificado para determinar se o controle tem o foco.
ODA_SELECT
O status de seleção foi alterado. O membro itemState deve ser verificado para determinar o novo estado de seleção.

itemState

Tipo: UINT

O estado visual do item após a ação de desenho atual. Esse membro pode ser uma combinação dos valores mostrados na tabela a seguir.

Valor Significado
ODS_CHECKED
O item de menu deve ser verificado. Esse bit é usado apenas em um menu.
ODS_COMBOBOXEDIT
O desenho ocorre no campo de seleção (controle de edição) de uma caixa de combinação desenhada pelo proprietário.
ODS_DEFAULT
O item é o item padrão.
ODS_DISABLED
O item deve ser desenhado como desabilitado.
ODS_FOCUS
O item tem o foco do teclado.
ODS_GRAYED
O item deve estar esmaecido. Esse bit é usado apenas em um menu.
ODS_HOTLIGHT
O item está sendo controlado a quente, ou seja, o item será realçado quando o mouse estiver no item.
ODS_INACTIVE
O item está inativo e a janela associada ao menu está inativa.
ODS_NOACCEL
O controle é desenhado sem as indicações do acelerador de teclado.
ODS_NOFOCUSRECT
O controle é desenhado sem indicações de indicador de foco.
ODS_SELECTED
A status do item de menu está selecionada.

hwndItem

Tipo: HWND

Um identificador para o controle para caixas de combinação, caixas de listagem, botões e controles estáticos. Para menus, esse membro é um identificador para o menu que contém o item.

hDC

Tipo: HDC

Um identificador para um contexto de dispositivo; esse contexto de dispositivo deve ser usado ao executar operações de desenho no controle .

rcItem

Tipo: RECT

Um retângulo que define os limites do controle a ser desenhado. Esse retângulo está no contexto do dispositivo especificado pelo membro hDC . O sistema corta automaticamente qualquer coisa que a janela do proprietário desenha no contexto do dispositivo para caixas de combinação, caixas de listagem e botões, mas não corta itens de menu. Ao desenhar itens de menu, a janela do proprietário não deve desenhar fora dos limites do retângulo definidos pelo membro rcItem .

itemData

Tipo: ULONG_PTR

O valor definido pelo aplicativo associado ao item de menu. Para um controle, esse parâmetro especifica o valor atribuído pela última vez à caixa de listagem ou caixa de combinação pela mensagem LB_SETITEMDATA ou CB_SETITEMDATA . Se a caixa de listagem ou a caixa de combinação tiver o estilo LBS_HASSTRINGS ou CBS_HASSTRINGS , esse valor será inicialmente zero. Caso contrário, esse valor é inicialmente o valor que foi passado para a caixa de listagem ou caixa de combinação no parâmetro lParam de uma das seguintes mensagens:

Se CtlType for ODT_BUTTON ou ODT_STATIC, itemData será zero.

Comentários

Alguns tipos de controle, como barras de status, não definem o valor de CtlType.

Requisitos

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

Confira também

CB_ADDSTRING

CB_INSERTSTRING

CB_SETITEMDATA

LB_ADDSTRING

LB_INSERTSTRING

LB_SETITEMDATA

Referência

WM_DRAWITEM