关于在mfc的在子对话框使用list control控件的问题

比如我建了一个类名为CExampleDlg的子对话框,并在子对话框中使用了listcontrol的控件,控件对应变量m_list。接下来我在父对话框中定义了一个CExam... 比如我建了一个类名为CExampleDlg的子对话框,并在子对话框中使用了list control的控件,控件对应变量m_list 。
接下来我在父对话框中定义了一个CExampleDlg的对象temp。
我希望能实现的功能很简单:
当我按下父对话框中的Button时,就会调用子对话框,并且根据Button的不同,可以在子对话框的list control中放映不同的信息
我的做法是从Button入手
void CExampleDlg::OnButton1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_Temp.m_List.InsertColumn(0,"NAMW",LVCFMT_CENTER,100);
m_Temp.m_List.InsertColumn(1,"TEAM",LVCFMT_CENTER,100);
DWORD dwStyle=m_Temp.m_List.GetExtendedStyle();
dwStyle|=LVS_EX_FULLROWSELECT;
dwStyle|=LVS_EX_GRIDLINES;
m_Temp.m_List.SetExtendedStyle(dwStyle);
m_Temp.m_List.InsertItem(0,"Tomy");
m_Temp.m_List.SetItemText(0,1,"Stom");
m_Temp.DoModal;

*pResult = 0;
}
感觉语法上没有什么错,但是一旦运行出现Debug Assertion Failed!的系统错误提示
仔细调试发现时从m_Temp.m_List.InsertColumn(0,"NAMW",LVCFMT_CENTER,100);开始就出现错误,看来是我的InsertColumn()函数用错了
那位能指点一下应该如何在父对话框中对子对话框的control list初始化。
展开
 我来答
直男救星来了
2010-10-05 · TA获得超过673个赞
知道小有建树答主
回答量:168
采纳率:100%
帮助的人:200万
展开全部
你的这种做法存在这样的问题:在写MFC程序的时候,经常会遇到的一种错误是对话框还没有被实力话,即对话框对象不存在,就对该对话框里面的控件进行初始化操作。因为对话框没有被实例化,既而对话框中的控件也就不存在,对这些控件进行初始化操作自然会导致错误。
对于这个问题,我通常采用这样的做法:
1、在子窗口类中声明一个变量,如int m_nFlag,用来判断父窗口点击的是哪个按钮,要让它在list ctrl中显示什么样的信息。
2、在父窗口响应按钮点击操作的函数中,依据点击的按钮不同给子窗口的m_nFlag传递不同的值,然后显示子对话框,即
m_Temp.m_nFlag=1;(具体传递哪个值根据按钮不同而设)
m_Temp.DoModal();
3、在子窗口的OnInitDialog函数中,根据m_nFlag的值来初始化list control控件。
muyejingefeng
2010-10-05 · TA获得超过348个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:0
展开全部
不知你的m_list在DataExchange里面跟控件联系起来了没有?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式