在修改某项记录时,点击”修改“,弹出对话框的时候,该项记录还在,在原来的记录上重新编辑新数据,该如何实现?
其实我已经实现了点击”修改“,弹出对话框,然后将要改的数据输入到编辑框,实现修改功能,但是弹出的对话框上没有原来的数据。要实现弹出对话框时,原来的数据还在,代码该如何写呢?感谢各位了。
我的修改函数如下:
void CMylistctrlDlg::OnModRow()
{
POSITION spos=NULL;
spos = m_list.GetFirstSelectedItemPosition();
int nSelItem = -1;
nSelItem = m_list.GetNextSelectedItem(spos);//找到要修改的行

CADDDLG dlg;
int nret=dlg.DoModal ();
if(nSelItem >= 0 && nSelItem<m_list.GetItemCount())
{
if(nret==IDOK)
{
CString str;
UpdateData(FALSE);

str.Format (_T("%s"),dlg.m_id) ;
m_list.SetItemText(nSelItem,0,str);//改该行第0项 str.Format (_T("%s"),dlg.m_time ) ;
m_list.SetItemText(nSelItem,1,str);//改该行第1项 str.Format (_T("%s"),dlg.m_chan ) ;
m_list.SetItemText(nSelItem,2,str);//改该行第2项 str.Format (_T("%s"),dlg.m_x ) ;
m_list.SetItemText(nSelItem,3,str);//改该行第3项 str.Format (_T("%s"),dlg.m_y ) ;
m_list.SetItemText(nSelItem,4,str);//改该行第4项 }
}

解决方案 »

  1.   

    CADDDLG dlg;
    int nret=dlg.DoModal (); 在DoModal之前,传入需要被修改的内容
      

  2.   

    把列表里的值获取后给对话框上空件 然后用UpdateData(false)修改了控件上的值后,取对话框上空件的值 UpdateData(true)
      

  3.   

    你的对话框类CADDDLG有一些成员变量:m_id、m_time这样的,在你声明CADDDLG dlg之后,DoModal弹出对话框之前,给这些m_id等变量赋值。然后DoModal弹出了对话框,修改这些m_id等值,关闭对话框后(即DoModal返回),你的dlg.m_id就是你修改后的值了
      

  4.   

    怎么没人回呢?怎样把选中行的值传给变量m_id,m_time等啊?急求!!!感谢各位了
      

  5.   

    CADDDLG dlg;
    tmp0=m_list.GetItemText(nSelItem,0);//获取选中行的第一列的值
    tmp1=m_list.GetItemText(nSelItem,1);//获取选中行的第二列的值
    tmp2=m_list.GetItemText(nSelItem,2);//获取选中行的第三列的值
    tmp3=m_list.GetItemText(nSelItem,3);//获取选中行的第四列的值
    tmp4=m_list.GetItemText(nSelItem,4);//获取选中行的第五列的值
    dlg.m_name=tmp0;
    dlg.m_addr=tmp1;
    dlg.m_type=tmp2;
    dlg.m_x=tmp3;
    dlg.m_y=tmp4;