黔东南建设厅网站,网络营销案例分析1000字,广东圆心科技网站开发需要多少钱,wordpress首页标题MFC 判断子窗体是否已经打开#xff0c;避免重复创建在主窗体中#xff0c;嵌入一个很多个子窗体#xff0c;但是#xff0c;每次只显示一个。我的做法是#xff0c;首先在主窗体头文件中定义子窗体对象#xff0c;然后在单击显示按钮的时候#xff0c;先判断子窗体是否…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);}------解决方案--------------------在MainDlg.h里面定义DeviceParam deviceParam;//设备信息窗体Version ver;//版本信息窗体CWnd* pChild;MainDlg的构造函数里面pChildNULL;在关闭pChild的时候要发送消息给MainDlg窗口把pChildNULL;按下按钮判断是否已经存在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);}差不多就这样了------解决方案--------------------在关闭pChild的时候要发送消息给MainDlg窗口把delete pChild;pChildNULL;------解决方案--------------------成员变量CDialog* p[10];构造函数for(int i0; i10; i) p[i] NULL;假设有6个选项每个选项对应一个对话框switch(k){if(p[k] NULL){ p[k] new CDialog(); p[k]-Create(); }}Show(k);单独写Show函数for(int i0; i10; i){if(p[i] ! NULL) p[i]-ShowWindow(SW_HIDE);}p[k]-ShowWindow(SW_SHOW);------解决方案--------------------引用:成员变量CDialog* p[10];构造函数for(int i0; i10; i) p[i] NULL;假设有6个选项每个选项对应一个对话框switch(k){if(p[k] NULL){ p[k] new CDialog(); p[k]-Create(); }}Show(k);单独写Show函数**************************************************************************自己测试通过解决方案*********************static CDlgResetAlarmInfo *p_DlgResetAlarmInfo new CDlgResetAlarmInfo;HWND hWnd p_DlgResetAlarmInfo-GetSafeHwnd();if(IsWindow(hWnd)){p_DlgResetAlarmInfo-ShowWindow(SW_SHOW);}else{p_DlgResetAlarmInfo-Create(CDlgResetAlarmInfo::IDD,CWnd::FromHandle(a_pTrend-GetSafeHwnd()));p_DlgResetAlarmInfo-ShowWindow(SW_SHOW);}**********************没有问题***************************原文http://blog.csdn.net/ghevinn/article/details/29560425