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