单击第一个对话框的一个后,调用如下的语句来生成第二个对话框:
CSecondDlg dlg;
dlg.DoModal();
可是,关闭第二个对话框后,再点击按钮,就会报错,这是怎么回事?我是使用自动生成的“确定”按钮来关闭第二个对话框的。第二个对话框上由一个treectrl和一个listctrl控件,并且包含一些我自己定义的累的对象。是不是存在有一些对象没销毁的问题?是对话框上的控件的问题,还是我自己定义的类的对象没销毁?以下是第二个对话框对应的类中包含的对象 CListCtrl m_ListCtrl; // 列表项
CPatchList m_cpPatch; //这是一个我自己定义的类生成的对象
CServerDoc* m_pDoc; // 指向文档的指针
CTreeCtrl m_tree; // 声明树形控件的变量
CSecondDlg dlg;
dlg.DoModal();
可是,关闭第二个对话框后,再点击按钮,就会报错,这是怎么回事?我是使用自动生成的“确定”按钮来关闭第二个对话框的。第二个对话框上由一个treectrl和一个listctrl控件,并且包含一些我自己定义的累的对象。是不是存在有一些对象没销毁的问题?是对话框上的控件的问题,还是我自己定义的类的对象没销毁?以下是第二个对话框对应的类中包含的对象 CListCtrl m_ListCtrl; // 列表项
CPatchList m_cpPatch; //这是一个我自己定义的类生成的对象
CServerDoc* m_pDoc; // 指向文档的指针
CTreeCtrl m_tree; // 声明树形控件的变量
解决方案 »
- Sleep语句为什么不起作用?
- 请问在VC中若要在某路径下新建一个文件夹的代码怎么写?多谢!
- 远程控制:300分求开发思路和线索
- 请问windows编程怎么把网卡设置混杂模式???
- 菜鸟新建了一个窗体叫dlg,我发现别的窗体有初试化函数,他没有,我就加上了,发现不好使了,错误代码我已经上传,链接为:http://www.cl
- 如何去掉最大化按钮,而不是变灰??如何禁止拉伸窗口???在线等待!!!
- 一个怪问题:ATL在ASP中调用问题,只能刷新一次??
- 跪求答案
- 谁有UUEncode的解码源代码,特急,各位大侠请帮忙,码到立刻给分!
- 高手请回答关于钩子的话题,如何得到IE Explore地址输入栏的句柄
- ***请教大家***有关CComboGridCtrl类**急!*
- 求助:如何在不同窗口之间传递数据?
CListCtrl m_ListCtrl; // 列表项
CPatchList m_cpPatch; //这是一个我自己定义的类生成的对象
CServerDoc* m_pDoc; // 指向文档的指针
CTreeCtrl m_tree; // 声明树形控件的变量
四个变量,而且唯一的指针对象,在构造函数中初始化为零的,怎么还会有没有释放的东西?
还想问一下,什么情况会导致内存释放错误?
为了传递文档指针,在第二个对话框的类中加入了一个C**Doc的对象
C**Doc* m_SecondDoc; // 指向文档的指针
点击button后的响应函数如下:
void CFirstDlg::OnBnClicked()
{
// TODO: 在此添加控件通知处理程序代码
CSecondDlg dlg;
dlg.m_SecondDoc = m_FirstDoc; //将第一个对话框中的C**Doc指针传递过来
dlg.DoModal();
}
CMyView *m_pView = (CMyView *)pFrame->GetActiveView();这样得到view类指针,然后GetDoucument();
该会了吧
第二个对话框中的CListCtrl有问题:为了在ClistCtrl中显示图标,我声明了两个 CImageList Cil1,Cil2;//大小图像列表但是如果将声明放在函数内,图标就显示不出来,需要在函数外部声明。但是这样,在第二次生成对话框时就会带来问题,我现在也是没办法了,有人遇到过同样的问题吗,指点一下啊
ImageList.Add
listCtrl.SetImageList
大致就这个流程吧。
放在初始画函数中。
ImageList 和 ListCtrl一起声明,保证生命周期一致。
如果将imageList的声明放在函数中就显示不了,如果放在函数的外部,就成为了一个全局变量,这是再调用这个函数,执行到ImageList.Create时就会出现错误,现在我将imageList声明成类的成员变量就解决了。谢谢大家,散分!