带参数的对话框 初始化?

jszhuweiwei 2009-09-07 09:18:52
初始化带参数的对话框?
CTalkbtw talkdlg(2,false);
talkdlg.DoModal();
这样是可以的。
问题是现在,需要把定义放到类的定义里面,
如 CTalkbtw talkdlg(int i,bool u);//对话框界面
这样的该怎样(2,false)这两个参数传给talkdlg?
...全文
104 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq539929779 2009-09-10
  • 打赏
  • 举报
回复
因内定义的类如果只有带参数的构造函数而没有无参的构造函数的话,则这个对象必须在包容因的构造函数初始化列表里面进行参数的传送,如:

class CMyClass
{
public:
CMyClass(int i)
{
}
};

class CMy
{
public:
CMy():obj(1)//只能这样子构造,,,,,,,,,,
{
m_pObj = new CMyClass(555);//这样也行
}

private:
CMyClass obj;
CMyClass m_pObj;

};
jszhuweiwei 2009-09-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 conry 的回复:]
引用 5 楼 jszhuweiwei 的回复:
其实我的意思就是把
CTalkbtw talkdlg(2,false);
定义与初始化分开两部写,
第一部分为
CTalkbtw talkdlg(int i,bool u);//对话框界面
第二部分以及talkdlg.DoModal(); 怎么考虑?

没看明白lz的意思

猜测一下

构造函数

C/C++ codeCTalkbtw::CTalkbtw(int i,bool u)
{
m_i=i;
m_u=u;
}
CTalkbtw::OnInitDialog()
{
...if(m_i==1)
{
}if(m_u)
{
}
}
[/Quote]我就是这个意思
Conry 2009-09-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jszhuweiwei 的回复:]
其实我的意思就是把
CTalkbtw talkdlg(2,false);
定义与初始化分开两部写,
第一部分为
CTalkbtw talkdlg(int i,bool u);//对话框界面
第二部分以及talkdlg.DoModal(); 怎么考虑?
[/Quote]
没看明白lz的意思

猜测一下

构造函数

CTalkbtw::CTalkbtw(int i,bool u)
{
m_i=i;
m_u=u;
}
CTalkbtw::OnInitDialog()
{
...
if(m_i==1)
{
}
if(m_u)
{
}
}
jszhuweiwei 2009-09-07
  • 打赏
  • 举报
回复
其实我的意思就是把
CTalkbtw talkdlg(2,false);
定义与初始化分开两部写,
第一部分为
CTalkbtw talkdlg(int i,bool u);//对话框界面
第二部分以及talkdlg.DoModal(); 怎么考虑?
txk1452 2009-09-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jszhuweiwei 的回复:]
引用 2 楼 dirdirdir3 的回复:
或者
CTalkbtw talkdlg;
talkdlg.init(2,false);
talkdlg.DoModal();

子函数中没有init函数,CTalkbtw不是应该先调用OnInitDialog() 初始化函数吗?
[/Quote]

OnInitDialog在DoModal之后调用,所以你没有机会初始化,按2楼的说法去做
jszhuweiwei 2009-09-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dirdirdir3 的回复:]
或者
CTalkbtw talkdlg;
talkdlg.init(2,false);
talkdlg.DoModal();
[/Quote]
子函数中没有init函数,CTalkbtw不是应该先调用OnInitDialog() 初始化函数吗?
dirdirdir3 2009-09-07
  • 打赏
  • 举报
回复
或者
CTalkbtw talkdlg;
talkdlg.init(2,false);
talkdlg.DoModal();
dirdirdir3 2009-09-07
  • 打赏
  • 举报
回复
CTalkbtw talkdlg;
talkdlg.xx=2;
talkdlg.xx=false;
talkdlg.DoModal();

15,979

社区成员

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

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