关于cdialog::create()

ly13 2002-12-12 05:53:05
调用create后函数自动销毁对象,生不成新的对话框,怎么办?
...全文
1030 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
andy_lau 2002-12-17
  • 打赏
  • 举报
回复
呵呵,问题简单嘛
ly13 2002-12-17
  • 打赏
  • 举报
回复
几天没来,有点吃惊,。。。这里真的都很热心,多谢各位大侠
andy_lau 2002-12-14
  • 打赏
  • 举报
回复
然后再改用的时候,ShowWindow就可以了
andy_lau 2002-12-14
  • 打赏
  • 举报
回复
在CMydlg中声明Dialog *dlga;就可以延长该对话框的生命周期了
zhou80bin 2002-12-14
  • 打赏
  • 举报
回复
hehe,犯了一个错误呀
不过也好,以后就不犯了
还有一个方法,也可以解决
用new

Void CMYdlg::onbutton1()
{
Dialog *dlga;
dlga=new Dialog;
dlga->Create(IDD_DIALOG_A,p_a);
dlga->ShowWindow(WS_VISIBLE);
//注意在对话框无用以后,要用delete dlga;来释放new所开辟的
//内存,切记

}
hnyyy 2002-12-14
  • 打赏
  • 举报
回复
纠正:

原因是你的非模式对话的对象应该在头文件中定义。

头文件中
CYouDlg dlg;

.cpp中
Void CMYdlg::onbutton1()
{
if(dlg.GetSafeHwnd())
dlg.DestroyWindow();

dlg.Create(IDD_DIALOG_A);
dlg.ShowWindow(SW_SHOW);
}
hnyyy 2002-12-14
  • 打赏
  • 举报
回复
你将CYouDlg dlg;定义在onbutton1()中,则该函数结束时,正如你说的dlg“自动销毁”了。

hnyyy 2002-12-14
  • 打赏
  • 举报
回复
原因是你的非模式对话的对象应该在头文件中定义。

头文件中

CYouDlg dlg;

.cpp中
Void CMYdlg::onbutton1()
{
if(dlg.GetSafeHwnd())
dlg.DestroyWindow();

dlg.Create(IDD_DIALOG_A);
ShowWindow(SW_SHOW);
}
hzieehalison 2002-12-14
  • 打赏
  • 举报
回复
是不能,对于一个程序,可以考虑作为父窗口成员变量对话框声明其父窗口或者拥有者窗口中.当然还有别的类似地方;简单的说就是声明在对于你要求显示的地方是相对全局性的.

举一个类似的例子:你要在一个对话框中直接添加一个按钮;如果你在类的某个成员函数中:
CButton btYourTest//这个不是通过资源编辑添加的
btYourTest.Create(.......),那么并看不到;但如果作为成员声明就可以了.非模态对话框也是类似.主要是析够时机问题

ly13 2002-12-12
  • 打赏
  • 举报
回复
我是创建非模式对话,但是能用对象直接调用create吗,好像是用对象的地址吧,
hzieehalison 2002-12-12
  • 打赏
  • 举报
回复
基于mfc的作如下说明
如果模态对话框:
CYourDlgClass dlg;
dlg.DoModal();

非模态则
CYourDlgClass dlg;
dlg.Create(YOURIDD);//填资源模板
dlg .ShowWindow(SW_SHOW);


ly13 2002-12-12
  • 打赏
  • 举报
回复
想通过点击button1来创建dialog_a对话框
airwjd 2002-12-12
  • 打赏
  • 举报
回复
Void CMYdlg::onbutton1()
{
Dialog dlga;
Dialog p_a=&dlga;
dlga.Create(IDD_DIALOG_A,p_a);
ShowWindow(WS_VISIBLE);
}
我就是想通过点击一个button来打开一个新对话框,我是新手,请大侠指点,感谢isdong :)
isdong 2002-12-12
  • 打赏
  • 举报
回复
代码?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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