winuser.h

Mensaje WM_MEASUREITEM

Definición

WM_MEASUREITEM  
idCtl = (UINT) wParam;                 // identificador de control
lpmis = (LPMEASUREITEMSTRUCT) lParam;  // información de tamaño de ítem

El mensaje WM_MEASUREITEM se envía a la ventana propietaria de un botón, combobox, listbox, control list-view o ítem de menú "owner-drawn" cuando el control o menú es creado.

Descripción

idCtl: valor de wParam. Contiene el valor del miembro CtlID de la estructura MEASUREITEMSTRUCT apuntada por el parámetro lpmis. Este valor identifica el control que envía el mensaje WM_MEASUREITEM.

Si el valor es cero, el mensaje fue enviado por un menú. Si el valor es distinto de cero, el mensaje fue enviado por un combobox o por un listbox. Si el valor es distinto de cero y el valor del miembro itemID de MEASUREITEMSTRUCT apuntado por lpmis es (UINT) -1, el mensaje fue enviado por un campo edit de un combobox.

lpmis: valor de lParam. Apunta a una estructura MEASUREITEMSTRUCT que contiene las dimensiones del control "owner-drawn" o del ítem de menú.

Valor de retorno

Una aplicación debe retornar TRUE si procesa este mensaje.

Observaciones

Cuando la ventana propietaria recibe el mensaje WM_MEASUREITEM, rellena la estructura MEASUREITEMSTRUCT apuntada por el parámetro lParam del mensaje y regresa; esto informa a Windows de las dimensiones del control. Si un listbox o combobox es creado con el estilo LBS_OWNERDRAWVARIABLE o CBS_OWNERDRAWVARIABLE, este mensaje se envía al propietario para cada ítem del control; en otro caso, este mensaje se envía una vez.

Windows envía el mensaje WM_MEASUREITEM a la ventana propietaria de comboboxes y listboxes creados con el estilo OWNERDRAWFIXED antes de enviar el mensaje WM_INITDIALOG. Como resultado, cuando el propietario recibe este mensaje, Windows aún no ha determinado la altura y anchura de la fuente usada en el control; las llamadas a funciones y los cálculos requeridos para esos valores se deben hacer en la función principal de la aplicación o biblioteca.