afx_msg void OnMeasureItem ( int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct );
Parámetros
nIDCtl
El ID del control.
lpMeasureItemStruct
Apunta a una estructura de datos MEASUREITEMSTRUCT que contiene las dimensiones del control dibujado por el propietario.
Observaciones
El marco llama a esta función miembro por el marco para el propietario de un botón dibujado por el propietario, cuadro combinado, cuadro de lista o elemento de menú cuando se crea el control.
Reemplazar esta función miembro y rellenar la estructura de datos MEASUREITEMSTRUCT apuntada por lpMeasureItemStruct y de regreso; Esto informa a Windows de las dimensiones del control y permite que Windows correctamente la interacción del usuario con el control de procesos.
Si se crea un cuadro de lista o cuadro combinado con el estilo LBS_OWNERDRAWVARIABLE o CBS_OWNERDRAWVARIABLE , el marco llama a esta función para el propietario de cada elemento del control; de lo contrario esta función se llama una vez.
Windows inicia la llamada a OnMeasureItem para el propietario de cuadros combinados y cuadros de lista creados con el estilo OWNERDRAWFIXED antes de enviar el WM_INITDIALOG mensaje. Como resultado, cuando el propietario recibe esta llamada, Windows todavía no determinado el alto y ancho de la fuente utilizada en el control; llamadas a funciones y cálculos que requieren estos valores deben producirse en la función principal de la aplicación o biblioteca.
Si el elemento que se está midiendo es un CMenu, CListBox o CComboBox , se llama la función virtual MeasureItem de la clase apropiada. Reemplazar la función de miembro MeasureItem de clase del control apropiado para calcular y establecer el tamaño de cada elemento.
Se llamará OnMeasureItem sólo si se crea la clase del control en tiempo de ejecución, o se crea con el estilo LBS_OWNERDRAWVARIABLE o CBS_OWNERDRAWVARIABLE . Si el control es creado por el editor de diálogo, no se llamará OnMeasureItem . Esto es porque se envía el mensaje WM_MEASUREITEM temprano en el proceso de creación del control. Si usted subclase mediante DDX_Control, SubclassDlgItemo SubclassWindow, la creación de subclases normalmente se produce tras el proceso de creación. Por lo tanto, no hay manera para manejar el mensaje WM_MEASUREITEM en la función del control OnChildNotify , que es el mecanismo que MFC utiliza para implementar ON_WM_MEASUREITEM_REFLECT.
&Notanbsp; Esta función miembro es llamada por el marco para permitir su aplicación controlar un mensaje de Windows. Los parámetros pasados a la función de reflejan los parámetros recibidos por el marco cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, que la aplicación utilizará los parámetros pasados originalmente con el mensaje y no los parámetros que proporcione a la función.
Visión General de CWnd |nbsp; Miembros de clase | Diagrama de jerarquía
Vea tambiénnbsp;CMenu::MeasureItem, CListBox::MeasureItem, CComboBox::MeasureItem, WM_MEASUREITEM