本人想在多文档中创建一个子文档,子文档是一个对话框形式的(这样里面能够加入一些控件),首先我增加一个对话框并生成了一个类CChild1,然后再主菜单中加入一个按钮(添加消息响应),其消息响应代码如下:
void CMainFrame::On32772()
{
if (m_pFuncTwoFrame != NULL)
{
m_pFuncTwoFrame->MDIActivate(); return ;
}
m_pFuncTwoFrame = new CChildFrame();
CMenu Menu;
CCreateContext context;
context.m_pNewViewClass = RUNTIME_CLASS(CChild1);
//待创建的视图的CRuntimeClass
//SetMenu(NULL);//移除当前菜单
// Menu.LoadMenuA(IDR_A_SUPPLIERS_ADD);
HINSTANCE hInst = AfxGetResourceHandle();
// SetMenu(&Menu);//设置新的菜单
//SetMenu(AfxGetApp()->m_pMainWnd->m_hWnd,m_hOPMenu);
m_pFuncTwoFrame->LoadFrame(IDR_MAINFRAME,WS_CHILD | WS_OVERLAPPEDWINDOW,this,&context);
// m_pFuncTwoFrame->SetWindowText(_T("供应商资料—增加"));
// m_pFuncTwoFrame->ShowWindow(SW_SHOW);
m_pFuncTwoFrame->InitialUpdateFrame(NULL,true);
// TODO: 在此添加命令处理程序代码
}其中CChildFrame* m_pFuncTwoFrame;
并且m_pFuncTwoFrame = NULL;
但是一点击总是运行到m_pFuncTwoFrame->InitialUpdateFrame(NULL,true);报错,具体是CRuntimeClass* pClassThis = GetRuntimeClass();这里
敢问哪位大哥帮忙一下,真的好急!
void CMainFrame::On32772()
{
if (m_pFuncTwoFrame != NULL)
{
m_pFuncTwoFrame->MDIActivate(); return ;
}
m_pFuncTwoFrame = new CChildFrame();
CMenu Menu;
CCreateContext context;
context.m_pNewViewClass = RUNTIME_CLASS(CChild1);
//待创建的视图的CRuntimeClass
//SetMenu(NULL);//移除当前菜单
// Menu.LoadMenuA(IDR_A_SUPPLIERS_ADD);
HINSTANCE hInst = AfxGetResourceHandle();
// SetMenu(&Menu);//设置新的菜单
//SetMenu(AfxGetApp()->m_pMainWnd->m_hWnd,m_hOPMenu);
m_pFuncTwoFrame->LoadFrame(IDR_MAINFRAME,WS_CHILD | WS_OVERLAPPEDWINDOW,this,&context);
// m_pFuncTwoFrame->SetWindowText(_T("供应商资料—增加"));
// m_pFuncTwoFrame->ShowWindow(SW_SHOW);
m_pFuncTwoFrame->InitialUpdateFrame(NULL,true);
// TODO: 在此添加命令处理程序代码
}其中CChildFrame* m_pFuncTwoFrame;
并且m_pFuncTwoFrame = NULL;
但是一点击总是运行到m_pFuncTwoFrame->InitialUpdateFrame(NULL,true);报错,具体是CRuntimeClass* pClassThis = GetRuntimeClass();这里
敢问哪位大哥帮忙一下,真的好急!
{
.....
}CChild1 窗体的border设为none,style设为child之后写
context.m_pNewViewClass = RUNTIME_CLASS(CChild1);
可以的
if(!m_pFuncTwoFrame->LoadFrame(IDR_MAINFRAME,WS_MAXIMIZE | WS_OVERLAPPEDWINDOW,this,&context))
return;
这一步的时候就退出了,大虾这是什么原因
{
m_pFuncTwoFrame->MDIActivate(); return ;
}
就报错
假如该作
if (m_pFuncTwoFrame != NULL)
{
//m_pFuncTwoFrame->MDIActivate();
m_pFuncTwoFrame=NULL;
// return ;
}
这样我连续点击那个生成窗口的按钮又会出现几个同样的窗口。而我理想的效果是同样的窗口在同一时间内只出现一次,请教各位大侠如何解决?