在使用MFC做UI时,经常会进行不同界面(对话框)之间的切换。这时就需要去判断对话框是否已经被创建。创建非模态对话框的两种方式:类的对象与类的指针。
现有类 classCTestDialog : public CDialog { }.
1. 使用类的对象处理对话框
CTestDialog m_TestDialog; //定义类CTestDialog的对象
if(m_TestDialog.GetSafeHwnd()) //为TRUE 说明对话框已经被创建
{
m_TestDialog.ShowWindow(true);
}
else
{
m_TestDialog.Create(IDD_TEST_DIALOG);
}
2. 使用类的指针处理对话框
CTestDialog * p_TestDialog; //定义类CTestDialog的指针
p_TestDialog= NULL;
if (p_TestDialog== NULL) //直接判断指针是否为空来判断对话框是否被创建
{
p_TestDialog = new CTestDialog ();
p_TestDialog ->Create(IDD_TEST_DIALOG);
p_TestDialog->ShowWindow(SW_SHOWNORMAL);
}
else
{
p_TestDialog->ShowWindow(SW_SHOWNORMAL);
}