CComboBox::SetDroppedWidth

Chiamare la funzione per impostare la larghezza minima consentite, in pixel, della casella di riepilogo di una casella combinata.

int SetDroppedWidth(
   UINT nWidth 
);

Parametri

  • nWidth
    La larghezza minima valida della parte di tipo casella di riepilogo della casella combinata, in pixel.

Valore restituito

Se l'operazione riesce, la nuova larghezza della casella di riepilogo, in caso contrario CB_ERR.

Note

Questa funzione applica solo alle caselle combinate con lo stile CBS_DROPDOWNLIST o CBS_DROPDOWN.

Per impostazione predefinita, la larghezza minima valida dell'elenco a discesa è 0.Quando la parte di tipo casella di riepilogo della casella combinata visualizza, la larghezza è più grande di larghezza minima valida o la larghezza della casella combinata.

Esempio

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

// Adjust the width for the vertical scroll bar and the left and right border.
dx += ::GetSystemMetrics(SM_CXVSCROLL) + 2*::GetSystemMetrics(SM_CXEDGE);

// Set the width of the list box so that every item is completely visible.
m_pComboBox->SetDroppedWidth(dx);

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe di CComboBox

Grafico della gerarchia

CComboBox::GetDroppedWidth

CB_SETDROPPEDWIDTH