Problem when compiling program in my bese view class in GetDocument function

EDN Admin

Well-known member
Joined
Aug 7, 2010
Messages
12,794
Location
In the Machine
Hi,
I tried to make MySpllitter class and I maked the other new class drived from CView class as runtime class in MySplitter class. But when I tried to compile that I got these errors in MyProjectView.h in GetDocument function:
Error 1error C2143: syntax error : missing ; before *
Error 2error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Where is the problem and How can I fix them?
//MySplitter.cpp
#include "StdAfx.h"
#include "MySplitter.h"
#include "SplitDemoSixView.h"
#include "TestView.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

CMySplitter::CMySplitter(void)
{
}

CMySplitter::~CMySplitter(void)
{
}

void CMySplitter::ChangeViewClass(CRuntimeClass* pNewView)
{
m_pDynamicViewClass = pNewView;
}

void CMySplitter::DeleteView(int row, int col)
{
CView* pView = (CView*)GetDlgItem(IdFromRowCol(row, col));

if(pView->IsKindOf(RUNTIME_CLASS(CSplitDemoSixView)))
{
ChangeViewClass(RUNTIME_CLASS(CSplitDemoSixView));
}
else
{
if(pView->IsKindOf(RUNTIME_CLASS(CTestView)))
{
ChangeViewClass(RUNTIME_CLASS(CTestView));
}
}

CSplitterWnd::DeleteView(row, col);
}
//TestView.cpp drived from CView

#include "stdafx.h"
#include "SplitDemoSix.h"
#include "TestView.h"
#include "SplitDemoSixDoc.h"
#include "SplitDemoSixView.h"


// CTestView

IMPLEMENT_DYNCREATE(CTestView, CView)

CTestView::CTestView()
{

}

CTestView::~CTestView()
{
}

BEGIN_MESSAGE_MAP(CTestView, CView)
END_MESSAGE_MAP()


// CTestView drawing

void CTestView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}


// CTestView diagnostics

#ifdef _DEBUG
void CTestView::AssertValid() const
{
CView::AssertValid();
}

#ifndef _WIN32_WCE
void CTestView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif
#endif //_DEBUG


// CTestView message handlers

And the problem is here://MyProjectView.h

#pragma once

#include "resource.h"
#include "MySplitter.h"


class CSplitDemoSixView : public CFormView
{
protected: // create from serialization only
CSplitDemoSixView();
DECLARE_DYNCREATE(CSplitDemoSixView)

public:
enum{ IDD = IDD_SPLITDEMOSIX_FORM };

// Attributes
public:
CSplitDemoSixDoc* GetDocument();

// Operations
public:

// Overrides
public:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual void OnInitialUpdate();
...

Thanks.

View the full article
 
Back
Top