我是有向导生成的单文档带文档/视图支持的标准MFC程序,向导第四步选择了切分视图功能。生成了一个标准的MFC程序,我删掉向导生成的OnCreateClient()中的动态切分视图的代码,加入了我自己静态切分视图代码如下:
CBookRoomView是向导生成的类,基类为CView;
CTreeFormView是我用ClassWzard从CFormView派生的视图类
------------------------------------------------------------------------------------
CRect rect;
GetClientRect(rect);
CSize init(rect.Width ()/3,rect.Height ());
m_wndSplitter.CreateStatic (this, 1, 2);
if (!m_wndSplitter.CreateView (0, 0, RUNTIME_CLASS(CTreeFormView), init, pContext))
{
TRACE("Create views fail\n");
m_wndSplitter.DestroyWindow();
return FALSE;
}
init.cx = rect.Width ()/3 *2;
if (m_wndSplitter.CreateView (0, 1, RUNTIME_CLASS(CBookRoomView), init, pContext))
{
TRACE("Create views fail\n");
m_wndSplitter.DestroyWindow();
return FALSE;
}
-----------------------------------------------------------------------------
并在MainFrm.cpp框件类实现文件开头#include "stdafx.h"之后加入了两个视图类的头文件
#include "TreeFormView.h"
#include "BookRoomView.h"
编译后得到错误提示如下:
e:\bookroom\bookroomview.h(21) : error C2143: syntax error : missing ';' before '*'
e:\bookroom\bookroomview.h(21) : error C2501: 'CBookRoomDoc' : missing storage-class or type specifiers
e:\bookroom\bookroomview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers定位到bookroomview.h的21行看到是视图类中的CBookRoomDoc* GetDocument();提示这个成员函数错误
CBookRoomView是向导生成的类,基类为CView;
CTreeFormView是我用ClassWzard从CFormView派生的视图类
------------------------------------------------------------------------------------
CRect rect;
GetClientRect(rect);
CSize init(rect.Width ()/3,rect.Height ());
m_wndSplitter.CreateStatic (this, 1, 2);
if (!m_wndSplitter.CreateView (0, 0, RUNTIME_CLASS(CTreeFormView), init, pContext))
{
TRACE("Create views fail\n");
m_wndSplitter.DestroyWindow();
return FALSE;
}
init.cx = rect.Width ()/3 *2;
if (m_wndSplitter.CreateView (0, 1, RUNTIME_CLASS(CBookRoomView), init, pContext))
{
TRACE("Create views fail\n");
m_wndSplitter.DestroyWindow();
return FALSE;
}
-----------------------------------------------------------------------------
并在MainFrm.cpp框件类实现文件开头#include "stdafx.h"之后加入了两个视图类的头文件
#include "TreeFormView.h"
#include "BookRoomView.h"
编译后得到错误提示如下:
e:\bookroom\bookroomview.h(21) : error C2143: syntax error : missing ';' before '*'
e:\bookroom\bookroomview.h(21) : error C2501: 'CBookRoomDoc' : missing storage-class or type specifiers
e:\bookroom\bookroomview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers定位到bookroomview.h的21行看到是视图类中的CBookRoomDoc* GetDocument();提示这个成员函数错误
解决方案 »
- windows 7可以一边调试一边显示界面,是怎么实现的
- 请问怎么样既可以让对话框没有边框又可以被鼠标拖动呢
- 一个vc编译的问题,求教!
- 请问"鼠标精灵"是怎么实现的?我要代码,谢谢各位高高手,急!在线等待....
- 已经安装了winpcap2.3.exe,可在用VC编译包含有packet32.h的头文件时,还是不认它。怎么办?
- 请什么是回调函数?
- ado和sqlserver都很熟悉的请进。一定给分(有源码)
- 可否用一个Ftp连接,同时(多线程)读写多个远程文件?
- no appropriate default constructor available
- 给位仁兄:有谁用过微软带的InstallShield 请进。
- 〖乱世情缘〗中的对白,我认为这是不对的。
- 帮忙看一下这个程序
在bookroomview.h中BOOKROOMVIEW类定义的前面加一个class CbookroomView;就行了。