MFC 判断子窗体是否已经打开,避免重复创建
在主窗体中,嵌入一个很多个子窗体,但是,每次只显示一个。
我的做法是,首先在主窗体头文件中定义子窗体对象,然后在单击显示按钮的时候,先判断子窗体是否已经被创建,如果创建了,则ShowWindow(SW_SHOW);将其他已经创建的窗体ShowWindow(SW_HIDE);如果没有创建,则先Create窗体并显示。
在MainDlg.h里面定义:
DeviceParam deviceParam;//设备信息窗体
Version ver;//版本信息窗体
按下按钮判断是否已经存在:
CWnd* pChild;
pChild = deviceParam.GetActiveWindow();
if(NULL != pChild)
{
deviceParam.ShowWindow(SW_SHOW);
}
else
{
deviceParam.Create(DeviceParam::IDD,this);
deviceParam.SetParent(this);
deviceParam.ShowWindow(SW_SHOW);
deviceParam.SetWindowPos(NULL,x,y,deviceParam.Width,deviceParam.Height,0);
}