初始化带参数的对话框?
CTalkbtw talkdlg(2,false);
talkdlg.DoModal();
这样是可以的。
问题是现在,需要把定义放到类的定义里面,
如 CTalkbtw talkdlg(int i,bool u);//对话框界面
这样的该怎样(2,false)这两个参数传给talkdlg?

解决方案 »

  1.   

    CTalkbtw talkdlg;
    talkdlg.xx=2;
    talkdlg.xx=false; 
    talkdlg.DoModal();
      

  2.   

    或者
    CTalkbtw talkdlg; 
    talkdlg.init(2,false);
    talkdlg.DoModal();
      

  3.   

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

  4.   


    OnInitDialog在DoModal之后调用,所以你没有机会初始化,按2楼的说法去做
      

  5.   

    其实我的意思就是把
    CTalkbtw talkdlg(2,false);
    定义与初始化分开两部写,
    第一部分为
    CTalkbtw talkdlg(int i,bool u);//对话框界面
    第二部分以及talkdlg.DoModal(); 怎么考虑?
      

  6.   

    没看明白lz的意思猜测一下 构造函数 CTalkbtw::CTalkbtw(int i,bool u)
    {
    m_i=i;
    m_u=u;
    }
    CTalkbtw::OnInitDialog()
    {
    ...
    if(m_i==1)
    {
    }
    if(m_u)
    {
    }
    }
      

  7.   

    因内定义的类如果只有带参数的构造函数而没有无参的构造函数的话,则这个对象必须在包容因的构造函数初始化列表里面进行参数的传送,如:class CMyClass
    {
    public:
        CMyClass(int i)
        {
        }
    };class CMy
    {
    public:
        CMy():obj(1)//只能这样子构造,,,,,,,,,,
        {
             m_pObj = new CMyClass(555);//这样也行
        }private:
       CMyClass obj;
       CMyClass m_pObj;};