MFC2010. 3. 24. 19:48

List Box의 Properties를 보면 Horizontal scroll과 Vertical scroll 두 가지 옵션이 있습니다.
그런데 이유는 알 수 없지만 옵션에 체크해도 가로 스크롤바는 생기지 않습니다.
가로 스크롤바는 직접 만드는 수밖에 없습니다.


아래 멤버 함수를 추가한 다음, 적당한 곳에서 함수를 불러주면 됩니다.
리스트박스에 아이템을 추가한 다음에 함수를 실행시키면 무난하겠네요.
참고로, m_list는 리스트박스의 멤버 변수입니다.

void CMyDlg::CreateHorizontalScroll()
{
    CString str; CSize sz; int dx=0;
    CDC *pDC = m_list.GetDC();
 
    for(int i = 0; i < m_list.GetCount(); i++)
    {
        m_list.GetText(i, str);
        sz = pDC->GetTextExtent(str);
 
        if (sz.cx > dx)
                dx = sz.cx;
    }
    m_list.ReleaseDC(pDC);
 
    if (m_list.GetHorizontalExtent() < dx)
    {
        m_list.SetHorizontalExtent(dx);
        ASSERT(m_at_list.GetHorizontalExtent() == dx);
    }
}


Posted by 못생긴나무