new
Create()
ShowWindow()
delete

解决方案 »

  1.   

    加一个resource ID 如IDC_BUTTON1
    加一个控件成员给class,如CButton m_button;
    在CXXXView(或其他窗口)的OnCreate消息中创建控件
    m_button.Create(...)//use the resource ID
    手工添加一行到Message-map中,响应控件的消息ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
    加上消息处理函数void CXXX::OnButton1() 
      

  2.   

    对 masterz() 的补充说明:
    手工添加一行到Message-map中,响应控件的消息ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
    加上消息处理函数void CXXX::OnButton1() 这些手工添加的代码不要添加到自动添加的消息代码区,否则,会有被自动删除的危险。
      

  3.   

    我得意思是:在一个程序中,我在菜单中选中一项,那么客户区(视图用CFormView)中的控件会发生变化,比如:有的控件出现了,有的控件消失了,有的控件位置发生了变化。
      

  4.   

    来信,给你的例子。[email protected]
      

  5.   

    有的控件出现了ShowWindow(SW_SHOW)
    有的控件消失了ShowWindow(SW_HIDE)
    有的控件位置发生了变化。 BOOL MoveWindow(
      HWND hWnd,      // handle to window
      int X,          // horizontal position
      int Y,          // vertical position
      int nWidth,     // width
      int nHeight,    // height
      BOOL bRepaint   // repaint option
    );
      

  6.   

    例如:
    CButton *btnOK;
    btnOK=new CButton;
    btnOK.Create(NULL,20,20,100,100,IDC_BUTTON_OK);//具体参数记不清了.很抱歉.
    //以下可以使用btnOK的各种方法来处理按钮了.
    btnOK.Destroy();
      

  7.   

    to luckyegg(幸运蛋)
    我得邮件是[email protected].多谢!!
      

  8.   

    CreateObject()后,得到句柄,就可以在消息循环里处理消息了
      

  9.   

    头文件中定义消息处理函数 afx void func(WPARAM,LPARMA)在消息循环中手动加上
    ON_MESSAGE(id_yours,func)
      

  10.   

    http://www.vckbase.com/vckbase/vckbase11/vc/ctrls/edt_03/1103001.htm
      

  11.   

    如何用代码动态添加控件
    作者: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();//销毁控件 在代码中我们只演示了编辑控件的动态生成方法,其它控件动态生成的方法基本一致,都可以参考这一过程。