初始化阶段:
// 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);
}
}
}