The MEASUREITEMSTRUCT structure informs Windows of the dimensions of an owner-drawn control or menu item. This allows Windows to process user interaction with the control correctly.
typedef struct tagMEASUREITEMSTRUCT { // mis UINT CtlType; // type of control UINT CtlID; // combo box, list box, or button identifier UINT itemID; // menu item, variable-height list box, or combo box identifier UINT itemWidth; // width of menu item, in pixels UINT itemHeight; // height of single item in list box menu, in pixels DWORD itemData; // application-defined 32-bit value } MEASUREITEMSTRUCT;
Value |
Meaning |
ODT_BUTTON |
Owner-drawn button |
ODT_COMBOBOX |
Owner-drawn combo box |
ODT_LISTBOX |
Owner-drawn list box |
ODT_LISTVIEW |
Owner-draw listview control |
ODT_MENU |
Owner-drawn menu |
The owner window of an owner-drawn control receives a pointer to the MEASUREITEMSTRUCT structure as the lParam parameter of a WM_MEASUREITEM message. The owner-drawn control sends this message to its owner window when the control is created. The owner then fills in the appropriate members in the structure for the control and returns. This structure is common to all owner-drawn controls.
If an application does not fill the appropriate members of MEASUREITEMSTRUCT, the control or menu item may not be drawn properly.
CB_ADDSTRING, CB_INSERTSTRING, CB_SETITEMDATA, LB_ADDSTRING, LB_INSERTSTRING, LB_SETITEMDATA, WM_MEASUREITEM