WM_MEASUREITEM
The
WM_MEASUREITEM message is sent to the owner window of an owner-drawn button,
combo box, list box, list view control, or menu item when the control or menu
is created.
WM_MEASUREITEM
idCtl = (UINT) wParam; // control identifier
lpmis = (LPMEASUREITEMSTRUCT) lParam; // item-size
information
Parameters
idCtl
Value of wParam.
Contains the value of the CtlID member of the MEASUREITEMSTRUCT
If the value
is zero, the message was sent by a menu. If the value is nonzero, the message
was sent by a combo box or by a list box. If the value is nonzero, and the
value of the itemID member of the MEASUREITEMSTRUCT pointed to by
lpmis is (UINT) -1, the message
was sent by a combo edit field.
lpmis
Value of lParam.
Points to a MEASUREITEMSTRUCT
Return Values
If an
application processes this message, it should return TRUE.
Remarks
When the
owner window receives the WM_MEASUREITEM message, the owner fills in the MEASUREITEMSTRUCT
structure pointed to by the lParam parameter of the message and returns;
this informs Windows of the dimensions of the control. If a list box or combo
box is created with the LBS_OWNERDRAWVARIABLE or CBS_OWNERDRAWVARIABLE style,
this message is sent to the owner for each item in the control; otherwise, this
message is sent once.
Windows sends
the WM_MEASUREITEM message to the owner window of combo boxes and list boxes
created with the OWNERDRAWFIXED style before sending the WM_INITDIALOG message.
As a result, when the owner receives this message, Windows has not yet
determined the height and width of the font used in the control; function calls
and calculations requiring these values should occur in the main function of
the application or library.
See Also