CListBox::SetHorizontalExtent

Gibt die Breite, in Pixel fest, durch die ein Listenfeld einen horizontalen Bildlauf durchgeführt werden kann.

void SetHorizontalExtent(
   int cxExtent 
);

Parameter

  • cxExtent
    Gibt die Anzahl der Pixel an, durch die das Listenfeld einen horizontalen Bildlauf durchgeführt werden kann.

Hinweise

Wenn die Größe des Listenfelds kleiner als dieser Wert ist, werden die horizontale Bildlaufleiste horizontal Elemente im Listenfeld aus.Wenn das Listenfeld ist, wie groß oder größer als der Wert, wird die horizontale Bildlaufleiste ausgeblendet.

Um auf einen Aufruf auf SetHorizontalExtent zu reagieren, muss das Listenfeld mit dem WS_HSCROLL Format definiert worden sein.

Diese Memberfunktion ist nicht für mehrspaltige Listenfelder hilfreich.Für mehrspaltige Listenfelder rufen Sie die SetColumnWidth-Memberfunktion auf.

Beispiel

// Find the longest string in the list box.
CString    str;
CSize      sz;
int        dx = 0;
TEXTMETRIC tm;
CDC*       pDC = m_myListBox.GetDC();
CFont*     pFont = m_myListBox.GetFont();

// Select the listbox font, save the old font
CFont* pOldFont = pDC->SelectObject(pFont);
// Get the text metrics for avg char width
pDC->GetTextMetrics(&tm); 

for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   m_myListBox.GetText(i, str);
   sz = pDC->GetTextExtent(str);

   // Add the avg width to prevent clipping
   sz.cx += tm.tmAveCharWidth;

   if (sz.cx > dx)
      dx = sz.cx;
}
// Select the old font back into the DC
pDC->SelectObject(pOldFont);
m_myListBox.ReleaseDC(pDC);

// Set the horizontal extent so every character of all strings 
// can be scrolled to.
m_myListBox.SetHorizontalExtent(dx);

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CListBox-Klasse

Hierarchien-Diagramm

CListBox::GetHorizontalExtent

CListBox::SetColumnWidth

LB_SETHORIZONTALEXTENT