1. 程式人生 > >VC++6.0 MFC顯示模態對話方塊和非模態對話方塊

VC++6.0 MFC顯示模態對話方塊和非模態對話方塊

1、模態對話方塊

#include "AddDataDlg.h"//新增標頭檔案

CAddDataDlg AddData_Dialog;//在標頭檔案中定義對話方塊物件(CAddDataDlg為該對話方塊對應的類)

int nReturn = AddData_Dialog.DoModal();//在原始檔函式中顯示模態對話方塊,將返回值賦給nReturn
if (nReturn ==IDCANCEL)//整形的結果如果是取消
{
   return FALSE;//就返回FALSE,對於當前這個按鈕按下事件的處理結束。
}
if (nReturn == IDOK)//整形的結果如果是確定
{
   return TRUE;//就返回TRUE,對於當前這個按鈕按下事件的處理結束。
}

2、非模態對話方塊

在主對話方塊類標頭檔案中定義指標:

#include "SDataDLG.h"//新增標頭檔案

CSDataDLG *m_SelectData_Dialog;//定義對話方塊指標(CSDataDLG為對話方塊所對應的類)

在主對話方塊類的構造裡面初始化指標:

m_SelectData_Dialog=NULL;//初始化對話方塊指標

在顯示對話方塊函式中新增顯示程式碼:

//判定對話方塊是否有所指向
	if (m_SelectData_Dialog == NULL)
	{
		m_SelectData_Dialog = new CSDataDLG();//指向一個非模對話方塊示例
		m_SelectData_Dialog->Create(IDD_Select_DIALOG, this);//建立
	}
	m_SelectData_Dialog->ShowWindow(SW_SHOW);//顯示

為主對話方塊類新增解構函式:

//在標頭檔案中的建構函式下方新增
~ CSensorSysDlg();//解構函式


//在原始檔中的建構函式下方新增
//解構函式
CSensorSysDlg::~CSensorSysDlg() 
{
}

在解構函式中對指標進行析構:

//解構函式
CSensorSysDlg::~CSensorSysDlg() 
{
	//析構非模態對話方塊
	if (m_SelectData_Dialog != NULL)
	{
		delete m_SelectData_Dialog;	
		m_SelectData_Dialog = NULL;
	}
}