MFC简单问题,请高手指点!!!

wujun_51 2010-06-07 09:37:07
我建立了一个MFC的exe工程,主框架的新建按钮建立了对话框,有确定和取消按钮,就是ONOK()和ONCANCEL()。我点击取消后就不能再用新建功能弹出对话框了,只能用一次新建,不知道为什么,是不是还要刷新什么?请高手指点。。。
代码:
void CDlgNew::OnCancel()
{
// TODO: Add extra cleanup here

CDialog::OnCancel();
}
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
在OnCancel后可以将那个指针先delete,再置为NULL。
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fengzongkui 的回复:]
6楼有道理,你在OnCancel后可以将那个指针置为NULL
[/Quote]

先delete,再置为NULL。
这种只有new没有delete的代码,应该直接红牌:)
fengzongkui 2010-06-15
  • 打赏
  • 举报
回复
6楼有道理,你在OnCancel后可以将那个指针置为NULL
向立天 2010-06-15
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
  • 打赏
  • 举报
回复
............
zgsdzhaolanxiang1 2010-06-15
  • 打赏
  • 举报
回复
void CMy33250AView::DisplayMain()
{
if(p_dlgmain == NULL)// 因为你点击了第一次新建之后p_dlgmain 已经不是NULL 了 所以这个IF没有执行 当然就看不到窗口了。
{


p_dlgmain = new Csel;// Csel是弹出对话框的类
p_dlgmain->DoModal();

if(p_dlgmain->GetSafeHwnd())
{
p_dlgmain->ShowWindow(SW_SHOW);
p_dlgmain->UpdateWindow();
}
}
wujun_51 2010-06-07
  • 打赏
  • 举报
回复
我就是希望在弹出对话框时主框架是不能操作的,在取消对话框后主框架就能继续操作。
问题是我再次新建对话框时,之前调用的对话框就弹不出来了。很奇怪。。。
Eleven 2010-06-07
  • 打赏
  • 举报
回复
我估计你说的是你弹出的对话框时模态对话框,你不能再操作你的主框架窗口的问题吧,你可以将你的对话框创建为为非模态对话框。。。。
wujun_51 2010-06-07
  • 打赏
  • 举报
回复
新建功能实现代码:
void CMainFrame::OnFileNew()
{
// TODO: Add your command handler code here
CMy33250AView *pview = (CMy33250AView *)GetActiveView();

pview->DisplayMain() ;

}
DisplayMain()代码:
void CMy33250AView::DisplayMain()
{
if(p_dlgmain == NULL)
{


p_dlgmain = new Csel;// Csel是弹出对话框的类
p_dlgmain->DoModal();

if(p_dlgmain->GetSafeHwnd())
{
p_dlgmain->ShowWindow(SW_SHOW);
p_dlgmain->UpdateWindow();
}
}
社会栋梁 2010-06-07
  • 打赏
  • 举报
回复
新建功能 是如何实现的?
帖下代码

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧