CListBox 控件用法总结

CListBox添加项,得到选中的单项或多项的值。

1 首先添加一个对话框,并创建这个对话框的类。

2 在主菜单蓝栏中添加一个菜单“列表框”,并添加这个菜单的单击事件

在OnInitDialog()中队列表框进行初始化。

BOOL CUserDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO:  在此添加额外的初始化
		((CListBox*)GetDlgItem(IDC_LIST1))->AddString(_T("程序员"));
		((CListBox*)GetDlgItem(IDC_LIST1))->AddString(_T("软件工程师"));
		((CListBox*)GetDlgItem(IDC_LIST1))->AddString(_T("系统架构师"));
		((CListBox*)GetDlgItem(IDC_LIST1))->AddString(_T("分析师"));
	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}


void CUserDlg::OnBnClickedButtonOk()
{
    // TODO: 在此添加控件通知处理程序代码
    CListBox *m_lstInfo = (CListBox *)GetDlgItem(IDC_LIST1);
    
    //那么你可以用一个循环取出里面的值:
    /*
    CString str; //临时变量用来接收项的字符串
    CString strAll=_T(""); //所有项
    int nCount = m_lstInfo->GetCount();//得到项目总数
    for(int i = 0; i< nCount; ++i)
    {
        m_lstInfo->GetText(i,str);
        strAll = strAll + str + _T("\r\n");
    }
    AfxMessageBox(strAll);
    */

    //取出单选选中的值
    /*
    int index;
    CString selectStr;
    index = m_lstInfo->GetCurSel();
    m_lstInfo->GetText(index,selectStr);
    AfxMessageBox(selectStr);
    */

    //多选,设置selection为Multiple
    int nCount = m_lstInfo->GetSelCount();
    CString cCount;
    CArray<int,int> aryListBoxSel;

    aryListBoxSel.SetSize(nCount);
    m_lstInfo->GetSelItems(nCount, aryListBoxSel.GetData()); 
    //得到总数
    cCount.Format(_T("%d"),nCount);
    AfxMessageBox(cCount);
    //得到选中的多项
    for (int i=0;i<nCount;i++)
    {
        CString selStr;
        m_lstInfo->GetText(aryListBoxSel[i],selStr);
        AfxMessageBox(selStr);
    }

CListBox 控件用法总结_第1张图片

你可能感兴趣的:(list)