CComboBox::SetDroppedWidth
Volání této funkce můžete nastavit minimální přípustná šířka v pixelech v poli seznamu pole se seznamem.
int SetDroppedWidth(
UINT nWidth
);
Parametry
- nWidth
Minimální přípustná šířka pole seznamu části pole se seznamem v pixelech.
Vrácená hodnota
Pokud úspěšný, novou šířku seznamu pole, jinak CB_ERR.
Poznámky
Tato funkce se vztahuje pouze na pole se seznamem s CBS_DROPDOWN nebo CBS_DROPDOWNLIST styl.
Minimální přípustná šířka rozevíracího seznamu ve výchozím nastavení je 0.Když se zobrazí část seznamu pole se seznamem, jeho šířka je větší minimální přípustná šířka nebo šířky pole se seznamem.
Příklad
// 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);
Požadavky
Záhlaví: afxwin.h