Partager via


CListBox::MeasureItem

Appelé par l'infrastructure lorsqu'une zone de liste avec un style owner draw est créée.

virtual void MeasureItem( 
   LPMEASUREITEMSTRUCT lpMeasureItemStruct  
);

Paramètres

Notes

Par défaut, cette fonction membre ne fait rien. Remplacez cette fonction membre et remplissez la structure d' MEASUREITEMSTRUCT pour informer les fenêtres les dimensions zone de liste. Si la zone de liste est créée avec le style de LBS_OWNERDRAWVARIABLE , l'infrastructure appelle cette fonction membre pour chaque élément de la zone de liste. Sinon, ce membre est appelé qu'une seule fois.

Pour plus d'informations sur utiliser le style de LBS_OWNERDRAWFIXED dans une zone de liste owner-draw créée avec la fonction membre d' SubclassDlgItem d' CWnd, consultez la discussion dans note technique 14.

Consultez CWnd::OnMeasureItem pour obtenir une description de la structure**.**d' MEASUREITEMSTRUCT

Exemple

// CMyODListBox is my owner-drawn list box derived from CListBox. This  
// example measures an item and sets the height of the item to twice the  
// vertical extent of its text. The list box control was created with the  
// following code: 
//   m_myODListBox.Create( 
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL| 
//      LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT, 
//      CRect(10,250,200,450), pParentWnd, IDC_MYODLISTBOX); 
// 
void CMyODListBox::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;
}

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CListBox, classe

Graphique de la hiérarchie

CListBox::CompareItem

CWnd::OnMeasureItem

CListBox::DrawItem

CListBox::DeleteItem