我在视图中通过调用OCREATE产生非模态对话框。消除对话框后,再次想产生这个对话框,程序就错误了,不知道什么问题啊?
代码如下:CColorDlg *p_ColorDlg = new CColorDlg;//定义为全局变量
void CPhototryView::OnMenuColor()
{
// TODO: Add your command handler code here
p_ColorDlg->Create(IDD_COLOR,this);
p_ColorDlg->ShowWindow(SW_SHOW);
}void CColorDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
DestroyWindow ();
delete this;
p_ColorDlg = NULL;
}
代码如下:CColorDlg *p_ColorDlg = new CColorDlg;//定义为全局变量
void CPhototryView::OnMenuColor()
{
// TODO: Add your command handler code here
p_ColorDlg->Create(IDD_COLOR,this);
p_ColorDlg->ShowWindow(SW_SHOW);
}void CColorDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
DestroyWindow ();
delete this;
p_ColorDlg = NULL;
}
解决方案 »
- 线程问题
- 为Windows重写外壳程序
- 挂起辅助线程的函数是什么?解挂函数呢?
- 我在连接数据库时出了问题,请问如何解决?
- 一行错误:fatal error C1010: unexpected end of file while looking for precompiled header directive
- 问题是,Norton AntiVirus 发现病毒后,不停的警告,我想屏蔽警告,
- 请问 在2000pro下 在一个做SDI的数据库程序里用了 MS_COMM.OCX空间老是出错。这是为什么???????????????????????
- 谁有刘海涛《VC中实现Access与Excel类型的互相转换技术》的源代码呀??
- 我新建了一个对话框,只添加了一些简单控件,用classwizard添加了类,为什么DoModal()返回-1?
- HDC GetDC(HWND hWnd);
- 有关发送大文件的问题
- 局域网信使服务程序问题
delete this;
你已经把分配的内存free了。我知道你是不想让内存泄露,但我认为既然你的
CColorDlg *p_ColorDlg是全局变量,
何不
CColorDlg clrDlg;你认为呢?
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
DestroyWindow ();
delete this;
p_ColorDlg = NULL;
}p_ColorDlg = NULL;这句话怎么来的呢?
是不是将对话框的指针传进来了,要是传的话,请传2级指针,这样才能真正的将指向对话框的指针清空,是吧void CColorDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
DestroyWindow ();
delete this;
*pp_ColorDlg = NULL; // 在创建对话框的时候,传进来的&p_ColorDlg
}好运!
问题就出在我第二次调用 p_ColorDlg->Create(IDD_COLOR,this);
的时候。
“unhandled exception int myview.exe : ox500000 ”
是不是p_ColorDlg这个全局变量的问题啊
因为你那样子会重复create的,