MFC中关于CListBox控件添加水平滚动条

时间:2021-11-11 19:46:33

首先是设置listbox控件的属性  Horizontal Scroll设为TRUE;

MFC中关于CListBox控件添加水平滚动条

然后添加函数到CUighurRecognitionDlg.cpp(在CUighurRecognitionDlg.h中声明函数)

void CUighurRecognitionDlg::SetHScroll()
{
    CDC* dc = GetDC();
    SIZE s;
    int index;
    CString str;
    long temp;
    for (index = 0; index< m_list.GetCount(); index++)
    {
        m_list.GetText(index, str);
        s = dc->GetTextExtent(str, str.GetLength() + 1);   // 获取字符串的像素大小
                                                           // 如果新的字符串宽度大于先前的水平滚动条宽度,则重新设置滚动条宽度
                                                           // IDC_LISTBOX为m_List的资源ID
        temp = (long)SendDlgItemMessage(IDC_LIST1, LB_GETHORIZONTALEXTENT, 0, 0); //temp得到滚动条的宽度
        if (s.cx > temp)
        {
            SendDlgItemMessage(IDC_LIST1, LB_SETHORIZONTALEXTENT, (WPARAM)s.cx, 0);
        }
    }
    ReleaseDC(dc);
}

m_list为listbox的关联变量;IDC_LIST1为listbox的ID

添加关联变量的方法:右击listbox控件->类向导->成员变量->添加变量->确定

MFC中关于CListBox控件添加水平滚动条

 

 

直接调用此函数就行