列表框的常用API

<1>删除指定的一行数据
int n;
m_ctlList.DeleteString(n);
其中
m_ctlList.DeleteString(m_ctlList.GetCount()-1);
为删除最后一行数据

<2>在指定的一行插入数据
CString str = "abcdefg";
int n;
m_ctlList.InsertString(n, str);
其中
m_ctlList.InsertString(-1 ,str);
等价于
m_ctlList.InsertString(m_ctlList.GetCount()-1, str);
为最后一行插入数据

<3>删除列表框中选中的行
int n = m_ctlList.GetCurSel();
m_ctlList.DeleteString(n);

<4>获取列表框中有几行数据
int n = m_ctlList.GetCount();

<5>为列表框增加水平滚动条
void CABDlg::SetHScroll()
{
    CDC* dc = GetDC();
    SIZE s;
    int index;
    CString str;
    long temp;
    for(index= 0; index< m_ctlList.GetCount(); index++)
    {
        m_ctlList.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);
}

 

你可能感兴趣的:(列表框的常用API)