CWnd::OnMeasureItem

A estrutura chama esta função de membro pela estrutura para o proprietário de um botão owner-draw, caixa de combinação, lista caixa ou item de menu quando o controle é criado.

afx_msg void OnMeasureItem(
   int nIDCtl,
      LPMEASUREITEMSTRUCT lpMeasureItemStruct 
);

Parâmetros

  • nIDCtl
    ID do controle.

  • lpMeasureItemStruct
    Aponta para um MEASUREITEMSTRUCT estrutura de dados que contém as dimensões do controle de desenho proprietário.

Comentários

Substituir a função de membro e preencha o MEASUREITEMSTRUCT estrutura de dados apontada por lpMeasureItemStruct e return; isso informa ao Windows as dimensões do controle e permite que o Windows processar a interação do usuário com o controle corretamente.

Se uma caixa de listagem ou caixa de combinação for criada com o LBS_OWNERDRAWVARIABLE or CBS_OWNERDRAWVARIABLE estilo, a estrutura chama esta função para o proprietário de cada item no controle; caso contrário, essa função é chamada uma vez.

Windows inicia a telefonar para OnMeasureItem para o proprietário da combinação de caixas de lista e criados com o OWNERDRAWFIXED estilo antes de enviar o WM_INITDIALOG mensagem.sistema autônomo resultado, quando o proprietário recebe essa telefonar, o Windows não tiver determinado ainda a altura e largura da fonte usada no controle; chamadas de função e cálculos que exigem esses valores devem ocorrer na função principal do aplicativo ou da biblioteca.

Se o item que está sendo medido é um CMenu, CListBox ou CComboBox objeto, o MeasureItem função virtual da classe apropriada é chamada. Substituir o MeasureItem função de membro da classe do controle apropriado para calcular e defina o dimensionar de cada item.

OnMeasureItem será chamada somente se classe do controle é criada em time de execução ou ele é criado com o LBS_OWNERDRAWVARIABLE or CBS_OWNERDRAWVARIABLE estilo.Se o controle for criado pelo editor de diálogo, OnMeasureItem não será chamado. Isso ocorre porque o WM_MEASUREITEM mensagem é enviada no início do processo de criação do controle.Se você subclasse usando DDX_Control, SubclassDlgItem, ou SubclassWindow, a subclassificação geralmente ocorre após o processo de criação. Portanto, não é possível manipular o WM_MEASUREITEM mensagem OnChildNotify função, que é que o mecanismo de MFC usa para implementar ON_WM_MEASUREITEM_REFLECT.

Observação:

Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipular uma mensagem do Windows.Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida.Se você chamar a implementação da classe base ementation dessa função, essa implementação usará os parâmetros passados originalmente com a mensagem e não os parâmetros que você fornecer para a função.

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

Classe CWnd

Gráfico de hierarquia

CMenu::MeasureItem

CListBox::MeasureItem

CComboBox::MeasureItem

CComboBox::MeasureItem

Outros recursos

Membros CWnd