exampleview.cpp

来自「vc150例源码」· C++ 代码 · 共 179 行

CPP
179
字号
// ExampleView.cpp : implementation of the CExampleView class
//

#include "stdafx.h"
#include "Example.h"

#include "ExampleSet.h"
#include "ExampleDoc.h"
#include "ExampleView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CExampleView

IMPLEMENT_DYNCREATE(CExampleView, CRecordView)

BEGIN_MESSAGE_MAP(CExampleView, CRecordView)
	//{{AFX_MSG_MAP(CExampleView)
	ON_COMMAND(ID_RECORD_ADDNEW, OnRecordAddnew)
	ON_COMMAND(ID_RECORD_MODIFY, OnRecordModify)
	ON_COMMAND(ID_RECORD_DELETE, OnRecordDelete)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CExampleView construction/destruction

CExampleView::CExampleView()
	: CRecordView(CExampleView::IDD)
{
	//{{AFX_DATA_INIT(CExampleView)
	m_pSet = NULL;
	//}}AFX_DATA_INIT
	// TODO: add construction code here

}

CExampleView::~CExampleView()
{
}

void CExampleView::DoDataExchange(CDataExchange* pDX)
{
	CRecordView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CExampleView)
	DDX_FieldText(pDX, IDC_AUID, m_pSet->m_Au_ID, m_pSet);
	DDX_FieldText(pDX, IDC_AUTHOR, m_pSet->m_Author, m_pSet);
	DDX_FieldText(pDX, IDC_YEARBORN, m_pSet->m_Year_Born, m_pSet);
	//}}AFX_DATA_MAP
}

BOOL CExampleView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CRecordView::PreCreateWindow(cs);
}

void CExampleView::OnInitialUpdate()
{
	m_pSet = &GetDocument()->m_exampleSet;
	CRecordView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

}

/////////////////////////////////////////////////////////////////////////////
// CExampleView printing

BOOL CExampleView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CExampleView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CExampleView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CExampleView diagnostics

#ifdef _DEBUG
void CExampleView::AssertValid() const
{
	CRecordView::AssertValid();
}

void CExampleView::Dump(CDumpContext& dc) const
{
	CRecordView::Dump(dc);
}

CExampleDoc* CExampleView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CExampleDoc)));
	return (CExampleDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CExampleView database support
CRecordset* CExampleView::OnGetRecordset()
{
	return m_pSet;
}


/////////////////////////////////////////////////////////////////////////////
// CExampleView message handlers

void CExampleView::OnRecordAddnew() 
{
	// TODO: Add your command handler code here
	if(!m_pSet->CanAppend())
	{	
		return;
	}
	m_pSet->MoveLast();
	m_pSet->AddNew();
	m_pSet->m_Au_ID=888888;
	m_pSet->m_Author="Yinlimin";
	m_pSet->m_Year_Born=1966; 
	if(!m_pSet->Update())
	{
		AfxMessageBox("添加新记录失败!");
	}
	m_pSet->Requery();
	m_pSet->MoveLast();
	UpdateData(FALSE);
}

void CExampleView::OnRecordModify() 
{
	// TODO: Add your command handler code here
	if(!m_pSet->CanUpdate())
	{	
		return;
	}
	m_pSet->Edit(); 
	m_pSet->m_Au_ID=666666;
	m_pSet->m_Author="Wangxingjing";
	m_pSet->m_Year_Born=1988; 
	if(!m_pSet->Update())
	{
		AfxMessageBox("修改记录失败!");
	}
	m_pSet->Requery();
	UpdateData(FALSE);
}

void CExampleView::OnRecordDelete() 
{
	// TODO: Add your command handler code here
	m_pSet->Delete(); 
	m_pSet->MoveNext(); 
	if(m_pSet->IsEOF())
		m_pSet->MoveLast();
	m_pSet->Requery();
	UpdateData(FALSE);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?