Поделиться через


CComboBox::SetHorizontalExtent

Устанавливает толщину (в точках), которые являются частью списка полей со списком может быть прокручена по горизонтали.

void SetHorizontalExtent(
   UINT nExtent 
);

Параметры

  • nExtent
    Указывает количество пикселей, на которое является частью списка полей со списком может быть прокручена по горизонтали.

Заметки

Если ширина списка меньше, чем это значение, то горизонтальная полоса прокрутки по горизонтали прокручивает элементы в списке.Если ширина списка равна или превышает это значение, то скрыта или, если поле со списком имеет стиль CBS_DISABLENOSCROLL, то отключена горизонтальная полоса прокрутки.

Пример

// Find the longest string in the combo box.
CString     str;
CSize       sz;
int         dx = 0;
TEXTMETRIC  tm;
CDC*        pDC = m_pComboBox->GetDC();
CFont*      pFont = m_pComboBox->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_pComboBox->GetCount(); i++)
{
   m_pComboBox->GetLBText(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_pComboBox->ReleaseDC(pDC);

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

Требования

Header: afxwin.h

См. также

Ссылки

Класс CComboBox

Диаграмма иерархии

CComboBox::GetHorizontalExtent

CB_SETHORIZONTALEXTENT