我通过MFC编程,想实现以下过程:
在主对话框的某个区域插入3个子对话框,并在子对话框中添加控件,然后通过主对话框上的Button来控制子对话框的现实和隐藏。
有点类似TabCtrl控件的功能,但我不喜欢使用TabCtrl控件。
请问各位达人,我应该怎么实现子对话框的插入?
最好给些源码!
我通过MFC编程,想实现以下过程:
在主对话框的某个区域插入3个子对话框,并在子对话框中添加控件,然后通过主对话框上的Button来控制子对话框的现实和隐藏。
有点类似TabCtrl控件的功能,但我不喜欢使用TabCtrl控件。
请问各位达人,我应该怎么实现子对话框的插入?
最好给些源码!
在resourceview选项卡中,右击dialog文件夹选择insert dialogue选项即可。
在主对话框的*Dlg.h顶部加入#include“子对话框.h”;在public:
CShiDlg(CWnd* pParent = NULL); // standard constructo
C子对话框 myd;
在*Dlg.cpp的按钮单击事件中加入 myd.DoModal();就行了 。
MFC单文档程序:
CSPView类 中有2个变量: CDataDialog *m_pDataDlg;//注class CDataDialog:public CDialog{
CPasswordDialog *m_pPasswordDlg;//注class CDataDialog:public CDialog
建立2个子窗口时,都把父窗口设为当前窗口。
if(NULL==m_pDataDlg) //have not created the dialog box
{
m_pDataDlg = new CDataDialog(m_pPointSet,m_pArcSet);
m_pDataDlg->Create(IDD_INPUT_DATA,this);//父窗口为当前窗口
}
如今:
void CPasswordDialog::OnBnClickedOk()
{
UpdateData(TRUE);
if(SafetyConfirm())
{
CSPView * view=(CSPView *) GetParent();
assert(view);
view->GetDataDialog();
assert( (view->m_pDataDlg) ); //正常。
view->m_pDataDlg->ShowWindow(SW_SHOW);
}
OnOK();
}