mfc自动生成CMainFrame,CMyView,CMyDoc等类,可是没见有CMainFrame MyObject; 这样的语句实例化一个对象.
1这些类有没有定义对象?2在哪定义的?3为什么我自定义以上对象会出错?(CMainFrameMyObject;此处报错)分不多,求高手解答...
1这些类有没有定义对象?
2在哪定义的?
3为什么我自定义以上对象会出错?(CMainFrame MyObject;此处报错)
分不多,求高手解答 展开
2在哪定义的?
3为什么我自定义以上对象会出错?(CMainFrame MyObject;此处报错)
分不多,求高手解答 展开
3个回答
展开全部
CMainFrame在App类里的BOOL CxxxxxxApp::InitInstance()创建的
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
没有必要手动生成。
-------------
估计你的CMainFrame MyObject; 放到了函数中,函数结束时,对象就自动销毁了。
或者,你没有调用ShowWindow和UpdateWindow
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
没有必要手动生成。
-------------
估计你的CMainFrame MyObject; 放到了函数中,函数结束时,对象就自动销毁了。
或者,你没有调用ShowWindow和UpdateWindow
展开全部
在文档类中只要使用(多文档的,单文档的更简单一点儿)
POSITION pos=this->GetFirstViewPosition();//要写在文档类中,在其他类中把this换成文档指针就可以了
while(pos)
{
CView *pView=this->GetNextView(pos);
}
而在框架类中只要选取得文档对象,然后再使用上面的代码
以下是从一个对象得到另一个对象有方面(摘自MFC深入浅出)
从一个对象得到另一个对象的方法
本对象 要得到的对象 使用的成员函数
CDocument对象 视列表 GetFirstViewPosition,GetNextView
文档模板 GetDocTemplate
CView 对象 文档对象 GetDocument
边框窗口 GetParentFrame
CMDIChildWnd或
CFrameWnd 对象 活动视 GetActiveView
活动视的文档 GetActiveDocument
CMDIFrameWnd对象 活动文档边框窗口 MDIGetActive
POSITION pos=this->GetFirstViewPosition();//要写在文档类中,在其他类中把this换成文档指针就可以了
while(pos)
{
CView *pView=this->GetNextView(pos);
}
而在框架类中只要选取得文档对象,然后再使用上面的代码
以下是从一个对象得到另一个对象有方面(摘自MFC深入浅出)
从一个对象得到另一个对象的方法
本对象 要得到的对象 使用的成员函数
CDocument对象 视列表 GetFirstViewPosition,GetNextView
文档模板 GetDocTemplate
CView 对象 文档对象 GetDocument
边框窗口 GetParentFrame
CMDIChildWnd或
CFrameWnd 对象 活动视 GetActiveView
活动视的文档 GetActiveDocument
CMDIFrameWnd对象 活动文档边框窗口 MDIGetActive
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1和2. 下面的代码是多文档的。
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_PROGRAMTYPE,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CMyView));
AddDocTemplate(pDocTemplate);
单文档:
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CMyView));
AddDocTemplate(pDocTemplate);
3.你没有包含头文件,所以出错。
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_PROGRAMTYPE,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CMyView));
AddDocTemplate(pDocTemplate);
单文档:
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CMyView));
AddDocTemplate(pDocTemplate);
3.你没有包含头文件,所以出错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询