在非doc源文件中调用对话框,先建立好对话框,定义类,变量以及头文件源文件等。因为一开始在建立对话框的时候想着建立独立对话框,就没有设到其他文件中去。为了在其他cpp中引用该对话框,修改该对话框的头文件和源文件:
//===========头文件 C_LatticeTransfDlg.h #include "resource.h" #include "Mylattice.h"//==需要引用该对话框的文件 class C_LatticeTransfDlg : public CDialogEx { DECLARE_DYNAMIC(C_LatticeTransfDlg) public: C_LatticeTransfDlg(CMyLattice* theLatticePos, CWnd* pParent = NULL); // 标准构造函数=====此处构造函数添加Mylattice类 virtual ~C_LatticeTransfDlg(); #ifdef AFX_DESIGN_TIME // ==如果是非模态对话框需要去掉该ifdef条件编译语 enum { IDD = IDD_TransFormDlg }; #endif } . . . //============源文件 C_LatticeTransfDlg.cpp==== #include "stdafx.h" #include "Liu_Occ.h" #include "C_LatticeTransf.h" #include "afxdialogex.h" C_LatticeTransfDlg::C_LatticeTransfDlg(CMyLattice* theLatticePos, CWnd* pParent /*=NULL*/)//===构造函数 : CDialogEx(IDD_TransFormDlg, pParent) , m_Tx(0) , m_Ty(0) , m_Tz(0) , m_Rx(0) , m_Ry(0) , m_Rz(0) ,iscomplete(false) { myLatticePos = theLatticePos; } C_LatticeTransfDlg::~C_LatticeTransfDlg() { } . . .
在其他文件中调用对话框:
包含对话框头文件后,
#include "C_LatticeTransf.h"
void CMyLattice::test5() { C_LatticeTransfDlg *latticeTransfdlg; latticeTransfdlg = new C_LatticeTransfDlg(this); latticeTransfdlg->DoModal(); //==模态对话框打开方式
//latticeTransfdlg->Create(C_LatticeTransfDlg::IDD, NULL);//==如果非模态对话框用下列语句 //latticeTransfdlg->ShowWindow(SW_SHOW); float tx = latticeTransfdlg->Tx; float rx = latticeTransfdlg->Rx; }