想实现基于对话框的程序调用无模式对话框!
在对话框上添加一个BUTTON,按下后弹出无模式对话框该,如何实现?

解决方案 »

  1.   

    1,对话框编辑器设计无模式对话框资源
    2,生成管理这个无模式对话框的类,管理数据成员和消息处理函数
    3,new 这个对话框的实例
    4,不用domodal显示,要用create显示
    5,用destroywindow关闭对话框,在ok,cancle函数里面加上destroywindow
    6,ok函数里面updatedata()
    7,别忘了delete
      

  2.   

    在外部对话框类中声明(包含头文件哦)
    CXDlg * m_pXDlg;  //对话框类,其中这个对话框资源要改属性为WS_CHILD
    在外部对话框类中的OnCreate函数中
    m_pXDlg = new CXDlg;
    m_pXDlg ->Create(IDD_XDLG,this);//(第一个参数是对话框ID)
    m_pXDlg->ShowWindow(SW_SHOW);在外部对话框类的DoModal中CDialog::OnOK()前
    delete m_pXDlg;
      

  3.   

    m_pXDlg = new CXDlg;
    m_pXDlg ->Create(IDD_XDLG,this);//(第一个参数是对话框ID)
    m_pXDlg->ShowWindow(SW_SHOW);响应OnNcDestroy()消息里面
    delete this;就可以了
      

  4.   

    补充几点:
    ①若只是简单的需要诸如“正在初始化…”之类的,使用 CDialog *dlg = new CDialog;即
     可。然后 dlg->Create(对话框资源ID);
    ②*dlg 要定义成全局,若是局部,函数结束后,对话框就会关闭,即使你没有 delete 。
      

  5.   

    不是, 哪都可以动弹, 你要是想要一个只能在Parent 窗口里运动的窗体, ...你先可以问问楼上的, 我倒是可以告诉你API的MDI怎么写.,