请教MDI的问题,高手请进100分,在线等,解决就结帖
我有几个文檔模板
定义如下:
class CXXXApp : public CWinApp
{
public:
CXXXApp();
CMultiDocTemplate* pDocTemplateOne;//模板一
CMultiDocTemplate* pDocTemplateTwo;//模板二
部分代码省略
}
BOOL CXXXApp::InitInstance()
{
部分代码省略
pDocTemplateOne = new CMultiDocTemplate(
IDR_SOFTWATYPE,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CChartFrame), // custom MDI child frame
RUNTIME_CLASS(CMyView));
AddDocTemplate(pDocTemplateOne);
pDocTemplateTwo = new CMultiDocTemplate(
IDR_SOFTWATYPE,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CListFrame), // custom MDI child frame
RUNTIME_CLASS(CMyList));
AddDocTemplate(pDocTemplateTwo);
部分代码省略
}
模仿文件新增功能的代码,创建一个子窗口
void CMainFrame::OnChildNewOne ()
{
// TODO: Add your command handler code here
CDocTemplate* pTemplate = ((CXXXApp*) AfxGetApp())->pDocTemplateOne;
ASSERT_VALID(pTemplate);
CFrameWnd* pFrame = pTemplate->CreateNewFrame(NULL, NULL);
if (pFrame == NULL)
{
return; // command failed
}
pTemplate->InitialUpdateFrame(pFrame, NULL);
}
问题如下:
以上代码会打开很多个相同模板的子窗口
怎样打开一个子窗口的时候,如果这种模板的子窗口已经打开,就Active,如果没有打开则创建一个呢????
在线等阿
谢谢