BOOL CTestDlg::OnInitDialog()
{
//
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.SetBkColor(RGB( 240 , 255 , 240 ));
m_list.SetTextColor(RGB( 0 , 0 , 255 ));
// ---------------------------------------------
// 插入列字段
m_list.InsertColumn( 0 , " 学号 " ,LVCFMT_LEFT, 100 );
m_list.InsertColumn( 1 , " 姓名 " ,LVCFMT_LEFT, 100 );
// 插入行项目
m_list.InsertItem( 0 , " 20010540519 " );
m_list.InsertItem( 1 , " 20010540520 " );
m_list.InsertItem( 2 , " 20010540521 " );
// 插入行内容
m_list.SetItemText( 0 , 1 , " 宫奇 " );
m_list.SetItemText( 1 , 1 , " 杨建敏 " );
m_list.SetItemText( 2 , 1 , " 张威 " );
return TRUE;
}
{
//
![dot.gif](/Images/dot.gif)
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.SetBkColor(RGB( 240 , 255 , 240 ));
m_list.SetTextColor(RGB( 0 , 0 , 255 ));
// ---------------------------------------------
// 插入列字段
m_list.InsertColumn( 0 , " 学号 " ,LVCFMT_LEFT, 100 );
m_list.InsertColumn( 1 , " 姓名 " ,LVCFMT_LEFT, 100 );
// 插入行项目
m_list.InsertItem( 0 , " 20010540519 " );
m_list.InsertItem( 1 , " 20010540520 " );
m_list.InsertItem( 2 , " 20010540521 " );
// 插入行内容
m_list.SetItemText( 0 , 1 , " 宫奇 " );
m_list.SetItemText( 1 , 1 , " 杨建敏 " );
m_list.SetItemText( 2 , 1 , " 张威 " );
return TRUE;
}
3.为了使用上面的CEditDlg类 ,在TestDlg.cpp里的 #endif 之后加入#include "EditDlg.h";然后在主对话框上加入4个按钮修改(IDC_CHANGE)、删除(IDC_DELETE)、添加(IDC_ADD)、保存(IDC_SAVE),然后添加他们的响应函数如下:
void
CTestDlg::OnChange()
{ // 得到选择项的索引值
POSITION pos = m_list.GetFirstSelectedItemPosition();
m_nIndex = m_list.GetNextSelectedItem(pos);
if (m_nIndex ==- 1 )
{
MessageBox( " 请选择一项再修改! " , " 提示 " ,MB_ICONINFORMATION);
return ;
}
CEditDlg edlg;
edlg.m_StudentID = m_list.GetItemText(m_nIndex, 0 );
edlg.m_StudentName = m_list.GetItemText(m_nIndex, 1 );
if (edlg.DoModal() == IDOK)
{
m_list.SetItemText(m_nIndex, 0 ,edlg.m_StudentID);
m_list.SetItemText(m_nIndex, 1 ,edlg.m_StudentName);
}
}
void CTestDlg::OnDelete()
{
POSITION pos = m_list.GetFirstSelectedItemPosition();
m_nIndex = m_list.GetNextSelectedItem(pos);
if (m_nIndex ==- 1 )
{
MessageBox( " 请选择一项! " , " 提示 " ,MB_ICONINFORMATION);
return ;
}
m_list.DeleteItem(m_nIndex);
// 下面这2句的作用是刷新当前所指记录位置,以便连续删除
// UINT flag = LVIS_SELECTED|LVIS_FOCUSED;
// m_list.SetItemState(m_nIndex-1, flag, flag);
}
void CTestDlg::OnAdd()
{
CEditDlg edlg;
if (edlg.DoModal() == IDOK)
{
if (edlg.m_StudentID == "" )
return ;
m_nIndex = m_list.GetItemCount();
m_list.InsertItem(m_nIndex,edlg.m_StudentID);
m_list.SetItemText(m_nIndex, 1 ,edlg.m_StudentName);
}
}
void CTestDlg::OnSave()
{
CStdioFile sf;
if (sf.Open( " 资料.txt " ,CFile::modeCreate | CFile::modeWrite))
{
CString strOut;
strOut = " 学号\t\t姓名\r\n " ;
sf.WriteString(strOut);
for ( int i = 0 ;i < m_list.GetItemCount();i ++ )
{
strOut = m_list.GetItemText(i, 0 ) + " \t " + m_list.GetItemText(i, 1 ) + " \r\n " ;
sf.WriteString(strOut);
}
sf.Close();
MessageBox( " 保存成功! " , " 提示 " ,MB_ICONINFORMATION);
}
else
MessageBox( " 保存失败! " , " 提示 " ,MB_ICONINFORMATION);
}
{ // 得到选择项的索引值
POSITION pos = m_list.GetFirstSelectedItemPosition();
m_nIndex = m_list.GetNextSelectedItem(pos);
if (m_nIndex ==- 1 )
{
MessageBox( " 请选择一项再修改! " , " 提示 " ,MB_ICONINFORMATION);
return ;
}
CEditDlg edlg;
edlg.m_StudentID = m_list.GetItemText(m_nIndex, 0 );
edlg.m_StudentName = m_list.GetItemText(m_nIndex, 1 );
if (edlg.DoModal() == IDOK)
{
m_list.SetItemText(m_nIndex, 0 ,edlg.m_StudentID);
m_list.SetItemText(m_nIndex, 1 ,edlg.m_StudentName);
}
}
void CTestDlg::OnDelete()
{
POSITION pos = m_list.GetFirstSelectedItemPosition();
m_nIndex = m_list.GetNextSelectedItem(pos);
if (m_nIndex ==- 1 )
{
MessageBox( " 请选择一项! " , " 提示 " ,MB_ICONINFORMATION);
return ;
}
m_list.DeleteItem(m_nIndex);
// 下面这2句的作用是刷新当前所指记录位置,以便连续删除
// UINT flag = LVIS_SELECTED|LVIS_FOCUSED;
// m_list.SetItemState(m_nIndex-1, flag, flag);
}
void CTestDlg::OnAdd()
{
CEditDlg edlg;
if (edlg.DoModal() == IDOK)
{
if (edlg.m_StudentID == "" )
return ;
m_nIndex = m_list.GetItemCount();
m_list.InsertItem(m_nIndex,edlg.m_StudentID);
m_list.SetItemText(m_nIndex, 1 ,edlg.m_StudentName);
}
}
void CTestDlg::OnSave()
{
CStdioFile sf;
if (sf.Open( " 资料.txt " ,CFile::modeCreate | CFile::modeWrite))
{
CString strOut;
strOut = " 学号\t\t姓名\r\n " ;
sf.WriteString(strOut);
for ( int i = 0 ;i < m_list.GetItemCount();i ++ )
{
strOut = m_list.GetItemText(i, 0 ) + " \t " + m_list.GetItemText(i, 1 ) + " \r\n " ;
sf.WriteString(strOut);
}
sf.Close();
MessageBox( " 保存成功! " , " 提示 " ,MB_ICONINFORMATION);
}
else
MessageBox( " 保存失败! " , " 提示 " ,MB_ICONINFORMATION);
}
好了,现在就编译运行吧~你看到的结果应该是(现在上传不了图,暂时,以后会贴上来的)