CListBox::SetHorizontalExtent

设置的宽度,以像素,列表框可以水平移动。

void SetHorizontalExtent(
   int cxExtent 
);

参数

  • cxExtent
    指定列表框可以水平移动的像素数目。

备注

如果列表框的大小小于此值,水平滚动条将水平滚动列表框中的项。 如果列表框大于此值是用或,水平滚动条隐藏。

若要响应调用 SetHorizontalExtent,必须定义列表框与 WS_HSCROLL 样式。

此成员函数用于具有不是有用的列表框。 对于多列列表框,调用 SetColumnWidth 成员函数。

示例

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

要求

Header: afxwin.h

请参见

参考

CListBox选件类

层次结构图

CListBox::GetHorizontalExtent

CListBox::SetColumnWidth

LB_SETHORIZONTALEXTENT