不能实例化抽象类什么意思
IMPLEMENT_DYNCREATE(COrderView, CRecordView)
问题的代码
H文件
CPP文件
问题的代码
H文件
#pragma once
class COrderSet;
class CDBSampleDoc;
class COrderView:public CRecordView
{
DECLARE_DYNCREATE(COrderView)
protected:
virtual ~COrderView(){}
virtual void DoDataExchange(CDataExchange* pDX);
virtual void OnInitialUpdate();
public:
enum{ IDD = IDD_ORDERS_FORM };
COrderSet* m_pSet;
CDBSampleDoc* GetDocument() const
{
return reinterpret_cast<CDBSampleDoc*>(m_pDocument);
}
COrderSet* GetRecordSet();
COrderView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
};CPP文件
#include "stdafx.h"
#include "DBSample.h"
#include "OrderSet.h"
#include "DBSampleDoc.h"
#include "OrderView.h"
IMPLEMENT_DYNCREATE(COrderView, CRecordView)
COrderView::COrderView()
: CRecordView(COrderView::IDD),m_pSet(NULL)
{
// TODO: 在此处添加构造代码
}
void COrderView::DoDataExchange(CDataExchange* pDX)
{
CRecordView::DoDataExchange(pDX);
// 可以在此处插入 DDX_Field* 函数以将控件“连接”到数据库字段,例如
// DDX_FieldText(pDX, IDC_MYEDITBOX, m_pSet->m_szColumn1, m_pSet);
// DDX_FieldCheck(pDX, IDC_MYCHECKBOX, m_pSet->m_bColumn2, m_pSet);
// 有关更多信息,请参阅 MSDN 和 ODBC 示例
DDX_FieldText(pDX,IDC_ORDERID,m_pSet ->m_OrderDetailsOrderID,m_pSet);
DDX_FieldText(pDX,IDC_CUSTOMERID,m_pSet ->m_OrdersCustomerID,m_pSet);
DDX_FieldText(pDX,IDC_PRODUCTID,m_pSet ->m_OrderDetailsProductID,m_pSet);
DDX_FieldText(pDX,IDC_QUANTITY,m_pSet ->m_OrderDetailsQuantity,m_pSet);
}
#ifdef _DEBUG
void COrderView::AssertValid() const
{
CRecordView::AssertValid();
}
void COrderView::Dump(CDumpContext& dc) const
{
CRecordView::Dump(dc);
}
#endif
COrderset* COrderView::GetRecordset()
{
ASSERT(m_pSet != NULL);
return m_pSet;
}
CRecordset* COrderView::OnGetRecordset()
{
return m_pSet;
}
...全文


