CListctrl列表插入数据刷新 50
建立一对话框程序test,主对话框IDD_DIALOG_TEST加入一个列表控件(变量为contrl类型,m_list,用于显示数据库里的数据),有默认的确定和取消,我想...
建立一对话框程序test,主对话框IDD_DIALOG_TEST加入一个列表控件(变量为contrl类型,m_list,用于显示数据库里的数据),有默认的确定和取消,我想点确定,弹出一新的对话框,我想在这个新的对话框上点确定,想数据库中添加数据后,关闭此对话框,然后主对话框IDD_DIALOG_TEST得列表控件里的内容更新(也就是有我新添加的内容),求新对话框的确定按钮的代码!我的是(.h我已经加了)
...... //添加数据代码
CTestDlg dlg; //建立主程序对象
dlg.m_list.SetRedraw(FALSE);
dlg.m_list.DeleteAllItems(); //把原来的控件内容清理
dlg.ShowList(); //重新插入数据
dlg.m_list.SetRedraw(TRUE);
我的一点确定就报错,但前面可以插入数据!
,请问如何操作!! 展开
...... //添加数据代码
CTestDlg dlg; //建立主程序对象
dlg.m_list.SetRedraw(FALSE);
dlg.m_list.DeleteAllItems(); //把原来的控件内容清理
dlg.ShowList(); //重新插入数据
dlg.m_list.SetRedraw(TRUE);
我的一点确定就报错,但前面可以插入数据!
,请问如何操作!! 展开
3个回答
2015-10-15 · 知道合伙人互联网行家
关注
展开全部
先在列表中查找,后插入比如每条记录都有一个唯一的编号,查询的时候,首先查找该编号的记录在列表中是否存在,如果存在则找到Item后,直接更新各个列的数据,如
LVFINDINFO lv;
lv.flags=LVFI_STRING;
lv.psz=“关键字”;
int nItem=m_list.FindItem(&lv,-1);
如果Item>0则直接更新数据,用SetItemText(nItem,0,“值1”),
如果Item<0,则插入一条Item,InsertItem(),然后SetItemText(nItem,0,“”)。
LVFINDINFO lv;
lv.flags=LVFI_STRING;
lv.psz=“关键字”;
int nItem=m_list.FindItem(&lv,-1);
如果Item>0则直接更新数据,用SetItemText(nItem,0,“值1”),
如果Item<0,则插入一条Item,InsertItem(),然后SetItemText(nItem,0,“”)。
展开全部
新对话框只负责保存数据,代码放到CTestDlg中。CTestDlg点确定执行代码:
CNewDlg dlg;
if( dlg.DoModal() == IDOK)
{
m_list.SetRedraw(FALSE);
m_list.DeleteAllItems();
ShowList();
m_list.SetRedraw(TRUE);
}
CNewDlg dlg;
if( dlg.DoModal() == IDOK)
{
m_list.SetRedraw(FALSE);
m_list.DeleteAllItems();
ShowList();
m_list.SetRedraw(TRUE);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议调试下下,看看mfc在哪里断言!我想,可能对象生存时间问题...调试一下就知道你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询