Menus de proprietário-desenhado e a mensagem WM_DRAWITEM

Sempre que o item deve ser desenhado (por exemplo, quando ele é exibido pela primeira vez ou quando o usuário seleciona-lo), o sistema envia a mensagem WM_DRAWITEM para o procedimento janela da janela de proprietário do menu. Esta mensagem contém um ponteiro para uma estrutura de DRAWITEMSTRUCT que contém informações sobre o item, incluindo os dados do item que um aplicativo pode ter atribuído a ele. Além disso, DRAWITEMSTRUCT contém sinalizadores que indicam o estado do item (como se ele é acinzentado ou marcado), bem como um retângulo delimitador e um contexto de dispositivo que o aplicativo usa para desenhar o item.

Um aplicativo deve fazer o seguinte ao processar a mensagem WM_DRAWITEM:

  1. Determine o tipo de desenho que é necessário. Para fazer isso, verifique o membro itemAction a estrutura de DRAWITEMSTRUCT.
  2. Desenhe o item de menu apropriadamente, usando o contexto de dispositivo e Retangular delimitador obtido a partir da estrutura DRAWITEMSTRUCT . O aplicativo deve desenhar somente dentro de Retangular delimitador. Por motivos de desempenho, o sistema não clip-partes da imagem que são desenhados fora do retângulo.
  3. Restaurar todos os objetos GDI selecionados para o contexto de dispositivo do item de menu.

Se o usuário selecionar o item de menu, o sistema define o membro itemAction a estrutura de DRAWITEMSTRUCT para o valor ODA_SELECT e define o valor ODS_SELECTED no itemState membro. Isso é Dica do aplicativo para redesenhar o item de menu para indicar que ela está selecionada.

Index