Partager via


CComboBox::SetHorizontalExtent

Définit la largeur, en pixels, par lesquels la partie zone de liste de la zone de liste déroulante peut être horizontale vous faites.

void SetHorizontalExtent(
   UINT nExtent 
);

Paramètres

  • nExtent
    Spécifie le nombre de pixels par lesquels la partie zone de liste de la zone de liste déroulante peut être horizontale vous faites.

Notes

Si la largeur de la zone de liste est plus petite que cette valeur, la barre de défilement horizontale mettra défiler horizontalement des éléments dans la zone de liste.Si la largeur de la zone de liste est égale ou supérieure à la valeur, la barre de défilement horizontale est masqué ou, si la zone de liste déroulante a le style de CBS_DISABLENOSCROLL , désactivée.

Exemple

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

Configuration requise

Header: afxwin.h

Voir aussi

Référence

Classe de CComboBox

Graphique de la hiérarchie

CComboBox::GetHorizontalExtent

CB_SETHORIZONTALEXTENT