virtual void MeasureItem( LPMEASUREITEMSTRUCT lpMeasureItemStruct );
Параметры
lpMeasureItemStruct
Длинный указатель на структуру MEASUREITEMSTRUCT.
Замечания
Вызванный рамкой, когда список владельцем создан со стилем отрисовки владельцем.
По умолчанию, эта функция не делает ничего. Перегрузите эту функцию и внесите структуру MEASUREITEMSTRUCT, чтобы сообщить Windows относительно размерностей списка. Если список создан с LBS_OWNERDRAWVARIABLE стилем, рамка вызывает эту функцию для каждого элемента в списке. Иначе, это вызван только один раз.
Пример
// CMyListBox - мой выведенный владельцем список, полученный из CListBox. Этот // пример измеряет элемент и устанавливает высоту элемента вдвое // вертикальной протяженность текста. Управление списка было создано // следующим кодом: // pmyListBox->Create( // WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL| // LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE, // myRect, pParentWnd, 1); // void CMyListBox::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct) { ASSERT(lpMeasureItemStruct->CtlType == ODT_LISTBOX); LPCTSTR lpszText = (LPCTSTR) lpMeasureItemStruct->itemData; ASSERT(lpszText != NULL); CSize sz; CDC* pDC = GetDC(); sz = pDC->GetTextExtent(lpszText); ReleaseDC(pDC); lpMeasureItemStruct->itemHeight = 2*sz.cy; }