基于对话框的主窗口和子窗口程序。子窗口是非模态的。
我在主窗口中创建一个按键(key),当按下此按键后弹出一个子窗口(Dlg1),在Dlg1中我有个LIST Control的列表控件(m_CalList)。
我想按下key后在弹出的子窗口Dlg1的列表中显示我预定的数据,其中我在Dlg1的类中手动添加了OnInitDialog()函数,并在里面对LIST控件进行了初始化,并且LIST是以report的方式显示)。具体如下:
1. m_CalList.InsertColumn(0,"变量名称",LVCFMT_LEFT,120);
2. m_CalList.InsertColumn(1,"描述",LVCFMT_LEFT,120);
m_CalList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_CalList.InsertItem(1,"Time");
m_CalList.SetItemText(1,1,"喷油定时");
为什么编译能通过,但运行时,我点击Key键,总会出现弹出“终止、忽略、重试”对话框的错误。
我在1.和2.处设置断点,然后DEBUG,会发现,在1.处断点停止,错误貌似是this句柄的值与Dlg1的句柄值不同,这个问题怎么解决呢?
我这个问题与下面的问题类似,但从那个问题,我无法得到有用的信息:http://zhidao.baidu.com/question/61544090.html?an=0&si=1
求帮助!!!!
eg.
CString str;
str.Format(_T(“%d”), 4);
.AddString(str);
你可以使用泛型集合List<int>或List<double>添加到 List Box
中,首先你把int或double的数据添加到泛型集合中,然后再把泛型集合填充到 List Box就可以了!
可以动态创建, CDlg1 *pDlg1 = new CDlg1;
pDlg1->Create(ID_*****);
pDlg1->ShowWindow(SW_NORMAL);
如果你对话框没有创建出来,肯定有问题的,列表框加到子对话框中,会进行DDX执行,如果子对话框指针this不合法,其内部列表控件无法寄存的。
肯定是哪里ASSERT通不过了!
此类问题属于常见问题追问
恩,是动态创建的,和你的代码一样,最后弹出的错误对话框也是debug assertion failed!
你的CListCtrl是怎么创建的?跟窗口上的List相关联了吗?追问
哦,是的,但这个不是运行失败的原因,谢谢啦!
追答那你的m_CalList是怎么创建的呢?有关联到窗口控件吗?
追问没有,怎么关联?我只是在子窗口的类中添加了声明CListCtrl m_CalList;
追答那肯定不行,在Dlg1 的DoDataExchange下面加入
DDX_Control(pDX, List控件的ID, m_CalList);就行了
哦,谢谢,我试试
我加你好友吧
我毕设需要用MFC,但我是菜鸟!= =