CListCtrl的部分用法

初始化阶段:

   // TODO:  在此添加额外的初始化代码

  //插入行列数据
    CRect rs;
    GetClientRect(rs);
    m_list.InsertColumn(0, _T("工号"), 0, rs.Width() / 3);
    m_list.InsertColumn(1, _T("姓名"), 0, rs.Width() / 3);
    m_list.InsertColumn(2, _T("入职时间"), 0, rs.Width() / 3);
    m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);//设置表格风格

点击按钮,添加数据:

void CDDlg::OnBnClickedAdd()
{
    // TODO:  在此添加控件通知处理程序代码
    CString str;
    int j = 0, nIndex = m_list.GetItemCount();
    GetDlgItemText(IDC_NUM, str);


    if (str == "\0")
    {
        AfxMessageBox(_T("请输入正确的工号"));
        return;
    }


    while (j < nIndex)
    {
        if (str == m_list.GetItemText(j, 0))
        {
            AfxMessageBox(_T("工号重复!请重新输入!"));
            SetDlgItemText(IDC_NUM, _T("\0"));
            SetDlgItemText(IDC_NAME, _T("\0"));
            SetDlgItemText(IDC_JOIN, _T("\0"));
            return;
        }

        j++;
    }

    int i = m_list.GetItemCount();
    m_list.InsertItem(i, str);
    GetDlgItemText(IDC_NAME, str);
    m_list.SetItemText(i, 1, str);
    GetDlgItemText(IDC_JOIN, str);
    m_list.SetItemText(i, 2, str);
    SetDlgItemText(IDC_NUM, _T("\0"));
    SetDlgItemText(IDC_NAME, _T("\0"));
    SetDlgItemText(IDC_JOIN, _T("\0"));
}

点击鼠标,获取选中行(两种方法)

void CDDlg::OnNMClickList(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
    // TODO:  在此添加控件通知处理程序代码
    *pResult = 0;
    //int nIndex = 0;
    //POSITION pos = m_list.GetFirstSelectedItemPosition();
    //nIndex = m_list.GetNextSelectedItem(pos);
    //CString str;
    //for (int i = 0; i < m_list.GetItemCount(); i++)
    //{
    //    if (m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED)
    //    {
    //        str.Format(_T("选中了第%d行"), i + 1);
    //        AfxMessageBox(str);
    //    }
    //}


    for (int i = 0; i < m_list.GetItemCount(); i++)
    {
        if (m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED)
        {
            CString str;
            str.Format(_T("选中了第%d行"), i + 1);
            AfxMessageBox(str);
        }
    }
}



猜你喜欢

转载自blog.csdn.net/u013211966/article/details/71727706
今日推荐