CComboBox::MeasureItem
콤보 상자의 소유자 그리기 스타일을 만들 때 프레임 워크에 의해 호출 됩니다.
virtual void MeasureItem(
LPMEASUREITEMSTRUCT lpMeasureItemStruct
);
매개 변수
- lpMeasureItemStruct
하 긴 포인터는 MEASUREITEMSTRUCT 구조.
설명
기본적으로이 함수는 실행 되지 않습니다.이 멤버 함수를 재정의 하 고 입력 MEASUREITEMSTRUCT Windows 차원 목록 상자를 콤보 상자에서 알리기 위해 구조.콤보 상자를 만든 경우는 CBS_OWNERDRAWVARIABLE 스타일, 프레임 워크는이 멤버 함수를 호출 목록 상자의 각 항목에 대 한.그렇지 않으면이 멤버는 한 번만 호출 됩니다.
사용 하는 CBS_OWNERDRAWFIXED 만든 소유자 그리기 콤보 상자의 스타일의 SubclassDlgItem 멤버 함수를 CWnd 추가 프로그래밍 고려 사항에 포함 됩니다.토론을 참조 하십시오. 기술 참고 14.
참조 CWnd::OnMeasureItem 에 있는 MEASUREITEMSTRUCT 구조.
예제
// CMyComboBox is my owner-drawn combo box derived from CComboBox. This
// example measures an item and sets the height of the item to twice the
// vertical extent of its text. The combo box control was created with
// the following code:
// pmyComboBox->Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// CBS_SORT|CBS_OWNERDRAWVARIABLE,
// myRect, pParentWnd, 1);
//
void CMyComboBox::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
ASSERT(lpMeasureItemStruct->CtlType == ODT_COMBOBOX);
if (lpMeasureItemStruct->itemID != (UINT) -1)
{
LPCTSTR lpszText = (LPCTSTR) lpMeasureItemStruct->itemData;
ASSERT(lpszText != NULL);
CSize sz;
CDC* pDC = GetDC();
sz = pDC->GetTextExtent(lpszText);
ReleaseDC(pDC);
lpMeasureItemStruct->itemHeight = 2*sz.cy;
}
}
요구 사항
헤더: afxwin.h