怎样创建一个非模态对话框?
怎样在一个基于对话框的应用程序中创建一个非模态对话框?在函数内定义一个对话框类的对象,用Create创建,用ShowWindow显示。关键它是局部变量,一闪就没了,怎么解...
怎样在一个基于对话框的应用程序中创建一个非模态对话框?
在函数内定义一个对话框类的对象,用Create创建,用ShowWindow显示。
关键它是局部变量,一闪就没了,怎么解决这个问题? 展开
在函数内定义一个对话框类的对象,用Create创建,用ShowWindow显示。
关键它是局部变量,一闪就没了,怎么解决这个问题? 展开
6个回答
展开全部
估计是因为你的非模态对话框的生命周期太短导致。
你用 new 来做就可以。比如你的非模态对话框类为CDlg,那么可以这样:
class A
{
CDlg* d;
void ShowD();
}
void A::ShowD()
{
d = new CDlg(...);
d.Create(...);
d.ShowWindow(...);
}
当然你得在某个合适的地方将d销毁, 即delete d;
你用 new 来做就可以。比如你的非模态对话框类为CDlg,那么可以这样:
class A
{
CDlg* d;
void ShowD();
}
void A::ShowD()
{
d = new CDlg(...);
d.Create(...);
d.ShowWindow(...);
}
当然你得在某个合适的地方将d销毁, 即delete d;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能用局部变量,局部变量执行完就被析构掉了。只要你把变量改成全局的就行了。
也不建议用new来分配内存,因为你还得要delete掉,不然会内存泄漏。
也不建议用new来分配内存,因为你还得要delete掉,不然会内存泄漏。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是类的话,你可以定义为成员变量,如果没有类你就把他定义为静态变量加一个static就ok了,更或者定义为全局变量也行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你要把它做成全局变量或者类的成员变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询