急!!!调用对话框时,CListCtrl控件出的问题!!!
在一个对话框上TestDlg,我加了一个CListCtrl控件,然后调用它:
if(TestDlg.DoModal() == IDOK)
{
for(int i = 0;i<51;i++)//i为CListCtrl控件的记录数
{
if(TestDlg.m_ListCtrl.GetCheck(i) == TRUE)///问题在这里,运行是的错误
.........
}
错误提示:Debug Assertion Failed!
调试跟踪时候,得到如上指出的地方,进入GetCheck(i)的函数,
出错在ASSERT(::IsWindow(m_hWnd));
是因为关闭了对话框的缘故??(应该是的)
那我还有什么方法可以得到CListCtrl上的记录的选择情况??
除了上面用的,可以再定义数组(但这样会不会很费空间呢?),还有别的更好的吗?
问题点数:20、回复次数:10Top
1 楼mimong_lin(从天上钓下个老婆来)回复于 2006-03-19 06:57:42 得分 0
等待!Top
2 楼robin_yao()回复于 2006-03-19 07:51:12 得分 4
我感觉你错误的原因在于。你关闭了对话框后又对listctrl操作,才会出错。
你的操作本身应该没错误。Top
3 楼Mackz(在相互)回复于 2006-03-19 09:41:44 得分 4
DoModal()返回后,对话框被销毁了,其窗体和窗体上的控件不能访问。请在TestDlg中间处理。Top
4 楼mimong_lin(从天上钓下个老婆来)回复于 2006-03-19 15:11:34 得分 0
除了我说的方法外,还有别的好的法子吗?Top
5 楼colourfuldavid(牧羊猪)回复于 2006-03-20 11:46:33 得分 4
if(TestDlg.DoModal() == IDOK)
{
....
你可以在这里面的把ListCtrl中的信息记录下来,保存在调用弹出对话框的函数所属的类的成员变量中,这样以后就可以处理啦!不知道说清楚没有。
}Top
6 楼henryxuv()回复于 2006-03-20 12:01:17 得分 2
你继承TestDlg的OnOK函数,把数据保存下来。传回来就好了Top
7 楼sparkiss()回复于 2006-03-20 13:01:17 得分 2
还有一个方法,就是在你的ONOK函数中,做这些操作,然后再销毁此对话框Top
8 楼shaobolovelinglijun(邵波一生一世爱凌丽君)回复于 2006-03-20 13:06:43 得分 0
顶贴。不需要理由。Top
9 楼double_pointer(双指针)回复于 2006-03-20 13:24:12 得分 4
错误原因前面的朋友们都说了.
你可以在CTestDialog::OnOK()中将你想要的信息保存下来,之后在你给出代码的地方取数据Top
10 楼mimong_lin(从天上钓下个老婆来)回复于 2006-03-20 19:13:40 得分 0
看来就只有这样了。
分少了,不好意思!Top




