学vc不久~试着学静态拆分窗口,可是碰到几个问题实在解决不了了1 建立View类的时候
比如:class CMyTreeView : public CTreeView
没有头文件的时候编译器会说无法识别CTreeView
可是加上#include "TreeView.h"
编译器会出现错误
e:\microsoft visual studio\myprojects\splitwnd\mytreeview.h(12) : fatal error C1083: Cannot open include file: 'TreeView.h': No such file or directory2 在实现拆分窗口的时候BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if(!(m_wndSplitter1.CreateStatic(this, 1, 2) ) || !(m_wndSplitter1.CreateView(0, 1, RUNTIME_CLASS(CSplitWndView), CSize(0,0), pContext) ) || !(m_wndSplitter1.CreateView(0, 0, RUNTIME_CLASS(CMyTreeView), CSize(180 ,0), pContext) ) ) {
return FALSE;
}
return TRUE;
}
没有加头文件,编译器无法识别CSplitWndView, CMyTreeView加入头文件
#include "SplitWndView.h"
#include "MyTreeView.h"会发生编译错误e:\microsoft visual studio\myprojects\splitwnd\splitwndview.h(21) : error C2143: syntax error : missing ';' before '*'
e:\microsoft visual studio\myprojects\splitwnd\splitwndview.h(21) : error C2501: 'CSplitWndDoc' : missing storage-class or type specifiers
e:\microsoft visual studio\myprojects\splitwnd\splitwndview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers搞的莫名其妙,错误地点在CSplitterView头文件类声明中
CSplitWndDoc* GetDocument(); 这一句~
怎么只要框架文件中#include 了view头文件,就会在这一行发生编译错误??!!3 我试着直接用2个RUNETIME_CLASS(CView)
编译可以通过,但是会弹出对话框 "建立空文档失败"
哭求大家帮忙!!!!!!!!!谢谢大家了!!!!!!!!!!!
比如:class CMyTreeView : public CTreeView
没有头文件的时候编译器会说无法识别CTreeView
可是加上#include "TreeView.h"
编译器会出现错误
e:\microsoft visual studio\myprojects\splitwnd\mytreeview.h(12) : fatal error C1083: Cannot open include file: 'TreeView.h': No such file or directory2 在实现拆分窗口的时候BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if(!(m_wndSplitter1.CreateStatic(this, 1, 2) ) || !(m_wndSplitter1.CreateView(0, 1, RUNTIME_CLASS(CSplitWndView), CSize(0,0), pContext) ) || !(m_wndSplitter1.CreateView(0, 0, RUNTIME_CLASS(CMyTreeView), CSize(180 ,0), pContext) ) ) {
return FALSE;
}
return TRUE;
}
没有加头文件,编译器无法识别CSplitWndView, CMyTreeView加入头文件
#include "SplitWndView.h"
#include "MyTreeView.h"会发生编译错误e:\microsoft visual studio\myprojects\splitwnd\splitwndview.h(21) : error C2143: syntax error : missing ';' before '*'
e:\microsoft visual studio\myprojects\splitwnd\splitwndview.h(21) : error C2501: 'CSplitWndDoc' : missing storage-class or type specifiers
e:\microsoft visual studio\myprojects\splitwnd\splitwndview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers搞的莫名其妙,错误地点在CSplitterView头文件类声明中
CSplitWndDoc* GetDocument(); 这一句~
怎么只要框架文件中#include 了view头文件,就会在这一行发生编译错误??!!3 我试着直接用2个RUNETIME_CLASS(CView)
编译可以通过,但是会弹出对话框 "建立空文档失败"
哭求大家帮忙!!!!!!!!!谢谢大家了!!!!!!!!!!!
2.为CSplitWndDoc类提供前置声明,即在头文件前面加上一行
class CSplitWndDoc
在视图类的cpp文件再加包含文档类头文件的代码,大致是
#include "SplitWndDoc.h"
3.应该是你具体的视图类,而不是CView
必须用RUNTIME_CLASS(CSplitWndView)和 RUNTIME_CLASS(CMyTreeView)
在两个视图类中#include "SplitWndDoc.h"