Aracılığıyla paylaş


CListBox::SetHorizontalExtent

Genişliği ile bir liste kutusu yatay olarak kaydırılabileceği piksel cinsinden ayarlar.

void SetHorizontalExtent(
   int cxExtent 
);

Parametreler

  • cxExtent
    Olarak liste kutusunda yatay olarak kaydırılabileceği piksel sayısını belirtir.

Notlar

Yatay kaydırma çubuğu liste kutusunun boyutu bu değerden daha küçükse, liste kutusundaki öğelerin yatay kaydırma yapacaktır. Liste kutusu büyük veya bu değerden daha büyük olarak, yatay kaydırma çubuğu gizlenir.

Bir çağrı yanıtlamak için SetHorizontalExtent, liste kutusu ile tanımlanmış olması gerekir ws_hscroll stili.

Bu üye işlev sütunlu liste kutuları için yararlı değildir. Sütunlu liste kutuları için çağrı SetColumnWidth üye işlevi.

Örnek

// 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);

Gereksinimler

Başlık: afxwin.h

Ayrıca bkz.

Başvuru

CListBox sınıfı

Hiyerarşi grafik

CListBox::GetHorizontalExtent

CListBox::SetColumnWidth

LB_SETHORIZONTALEXTENT