OnInitDialog()的时候你的对话框还没有建好,当然出不来了。

解决方案 »

  1.   

    是你的CRect的问题 改成CRect(10,10,100,100)
    myButton1.Create(_T("My button"), WS_CHILD¦WS_VISIBLE¦BS_PUSHBUTTON, CRect(10,10,100,130), this, 1);
    在OnInitDialog()返回前添加
      

  2.   

    不会呀 我测试了 你的句子就是 CRect 的问题 改成 CRect(10,10,100,100)就没问题了
    没有问题 因为我也试过了
    myButton1.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(10,10,100,130), this, 1);
      

  3.   

    不好意思 贴上的| 线出了问题 呵呵 系统改成了 & 呵呵 没问题了
     
      

  4.   

    http://www.vckbase.com/vckbase/vckbase11/vc/ctrls/edt_03/1103001.htm如何用代码动态添加控件
    作者:bzshow读者层次: VC初学者在资源编辑器里我们可以方便地在对话框中加入所需控件,比如文本编辑框、列表控件等。但假如我们需要在运行期间动态生成这些控件该怎么做呢?本文就是讲述用代码动态添加控件的方法,并提供示例工程。下载示例工程 12.5K程序运行界面如下
     为了方便演示,我们先生成一个基于对话框的MFC工程,起名为My在CMyDlg.h中做下面几个步骤:
    public:
          //加上这个变量
          CEdit m_MyEdit;
    protected: 
          //加上这个函数, 用来响应编辑框改变的事件
          afx_msg void OnChangeEdit();
          
    在CMyDlg.cpp中做下面几个动作:
    //增加这一行,为该编辑框设定ID为1820
    #define ID_MYEDT 1820
    在BEGIN_MESSAGE_MAP(CMyDlg, CDialog)下面加入
    ON_EN_CHANGE(ID_MYEDT, OnChangeEdit)
            
    添加这一句的作用是将编辑控件内容改变的消息映射到OnChangeEdit函数,你要在CMyDlg.cpp中实现OnChangeEdit()函数;
    好了,让我们动态生成控件吧! m_MyEdit.CreateEx(WS_EX_CLIENTEDGE, // 3D-border外观
            _T("EDIT"), 
            NULL,
            ES_AUTOHSCROLL | ES_LEFT | ES_NOHIDESEL | WS_CHILD,
            rect, this,
            ID_MYEDT);//生成edit控件
          
    m_MyEdit.ShowWindow(SW_SHOW); //显示控件
    m_MyEdit.SetFocus(); //设置焦点//动态删除可以用如下语句
    GetDlgItem(ID_MYEDT)->DestroyWindow();//销毁控件  
      

  5.   

    我按照jiangping_zhu(娜可露露之风之刃)的方法做了。还是感谢大家的热心
      

  6.   

    我按照jiangping_zhu(娜可露露之风之刃)的方法做了,解决问题了。谢谢大家的热心!