|
楼主 |
发表于 2020-12-20 08:00:01
|
显示全部楼层
以上除 lgq1982 以外,其余的都是一群饭桶,超级饭桶。
告初学者:如何用VC设计MDI程序。
1、首先创建一多文档程序;
2、点击【Insert】,【New Form...】菜单项。
在Name中输入 CTemp1View
Base Class 选择 CFormView
其他不用动,点击“OK”按钮。
3、点击【Insert】,【New Class...】菜单项。
Name: CTempFrm
Base class: CMDIChildWnd
点击“OK”按钮。
4、在CXXXApp中添加
public:
CMultiDocTemplate * m_pTemplate;
5、在CXXXApp中,修改 InitInstance() 的代码。
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
LoadStdProfileSettings(); // Load standard INI file options (including MRU)
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views.
//CMultiDocTemplate* pDocTemplate; //注释掉
//pDocTemplate = new CMultiDocTemplate( //注释掉
//添加自己的MDI子窗体
m_pTemplate = new CMultiDocTemplate(
IDR_XXXTYPE,//这里不变
RUNTIME_CLASS(CXXXDoc),//这里不变
RUNTIME_CLASS(CTempFrm), // 需要修改
RUNTIME_CLASS(CTempView));//需要修改
AddDocTemplate(m_pTemplate);
//如果还有其他窗体
m_pTemplate2 = new CMultiDocTemplate(
IDR_XXXTYPE,//这里不变
RUNTIME_CLASS(CXXXDoc),//这里不变
RUNTIME_CLASS(CTemp2Frm), // 需要修改
RUNTIME_CLASS(CTemp2View));//需要修改
AddDocTemplate(m_pTemplate2);
m_pTemplate3 = new CMultiDocTemplate(
IDR_XXXTYPE,//这里不变
RUNTIME_CLASS(CXXXDoc),//这里不变
RUNTIME_CLASS(CTemp3Frm), // 需要修改
RUNTIME_CLASS(CTemp3View));//需要修改
AddDocTemplate(m_pTemplate3);
...
// create main MDI Frame window
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
5、调用子窗体
声明变量
protected:
CTempFrm* m_pTempFrm;
void CMainFrame::OnMenu1Click()
{
// 打开已有的框架窗口
if(pTempFrm)
MDIActivate (pTempFrm);
else
{
//窗口没有打开,重新打开一个新的窗口
CDocument *pDoc=((CFXXXApp *)AfxGetApp())->m_pTemplate->OpenDocumentFile(NULL);
pDoc->SetTitle("子窗体1 楼上除 lgq1982 以外,其余的都是一群饭桶,超级饭桶。");
//保存与新打开框架窗口指针
m_pTempFrm= (CTempFrm*)MDIGetActive();
}
}
也!!!!适合初学者 |
|