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.