'DropDown size'에 해당되는 글 1건

320x100

[MFC] CComboBox : 내용길이에 따라 DropDown박스 사이즈 조정

Posted on 2009. 12. 29. 16:11
Filed Under Visual C++


// Message Map
ON_CBN_DROPDOWN(IDC_COMBO1, OnDropdownCombo1)

// 사용
void CTestDlg::OnDropdownCombo1()
{
        gfSetDroppedWidthCb(m_Combo, this);
}

// 자동 리사이즈 함수
inline void gfSetDroppedWidthCb(CComboBox& _cb, CWnd* _pwndParent)
{
    int nNumEntries = _cb.GetCount();
    int nWidth = 0;
    CString str;
 
    CClientDC dc(_pwndParent);
    int nSave = dc.SaveDC();
    dc.SelectObject(_pwndParent->GetFont());
 
    int nScrollWidth = ::GetSystemMetrics(SM_CXVSCROLL);
    for (int i = 0; i < nNumEntries; i++)
    {
        _cb.GetLBText(i, str);
        int nLength = dc.GetTextExtent(str).cx + nScrollWidth;
        nWidth = __max(nWidth, nLength);
    }   
    nWidth += dc.GetTextExtent(_T("0")).cx;
 
    dc.RestoreDC(nSave);
    _cb.SetDroppedWidth(nWidth);
}

천과장님~ 땡스얼랏! >_</

<적용전>
<적용 효과>
반응형

About

by 쑤기c

반응형