⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usedaoview.cpp

📁 c++编程代码,你看到后会与我联系啊,我非常高兴能在这学习
💻 CPP
字号:
// UseDAOView.cpp : implementation of the CUseDAOView class
//

#include "stdafx.h"
#include "UseDAO.h"

#include "UseDAOSet.h"
#include "UseDAODoc.h"
#include "UseDAOView.h"

#include "AddRecord.h"
#include "FindRecord.h"
#include "EditRecord.h"

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

/////////////////////////////////////////////////////////////////////////////
// CUseDAOView

IMPLEMENT_DYNCREATE(CUseDAOView, CDaoRecordView)

BEGIN_MESSAGE_MAP(CUseDAOView, CDaoRecordView)
	//{{AFX_MSG_MAP(CUseDAOView)
	ON_WM_PAINT()
	ON_COMMAND(ID_ADDRECORD, OnAddrecord)
	ON_COMMAND(ID_DELETERECORD, OnDeleterecord)
	ON_COMMAND(ID_FINDRECORD, OnFindrecord)
	ON_COMMAND(ID_MODIFYRECORD, OnModifyrecord)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CDaoRecordView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CDaoRecordView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CDaoRecordView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUseDAOView construction/destruction

CUseDAOView::CUseDAOView()
	: CDaoRecordView(CUseDAOView::IDD)
{
	//{{AFX_DATA_INIT(CUseDAOView)
		// NOTE: the ClassWizard will add member initialization here
	m_pSet = NULL;
	//}}AFX_DATA_INIT
	// TODO: add construction code here

}

CUseDAOView::~CUseDAOView()
{
}

void CUseDAOView::DoDataExchange(CDataExchange* pDX)
{
	CDaoRecordView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUseDAOView)
	DDX_Control(pDX, IDC_LISTVCD, m_listvcd);
	//}}AFX_DATA_MAP
}

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

	return CDaoRecordView::PreCreateWindow(cs);
}


void CUseDAOView::OnInitialUpdate()
{
	m_pSet = &GetDocument()->m_useDAOSet;
	CDaoRecordView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

	m_listvcd.ModifyStyle(0,LVS_REPORT|LVS_SINGLESEL);
	m_listvcd.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	

	CDaoFieldInfo fieldInfo;
	for(int j=0; j<m_pSet->m_nFields; j++)
	{
	    m_pSet->GetFieldInfo(j, fieldInfo);
		m_listvcd.InsertColumn(j+1, fieldInfo.m_strName);
	}
	
	DisplayRecord();


}


/////////////////////////////////////////////////////////////////////////////
// CUseDAOView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CUseDAOView diagnostics

#ifdef _DEBUG
void CUseDAOView::AssertValid() const
{
	CDaoRecordView::AssertValid();
}

void CUseDAOView::Dump(CDumpContext& dc) const
{
	CDaoRecordView::Dump(dc);
}

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

/////////////////////////////////////////////////////////////////////////////
// CUseDAOView database support
CDaoRecordset* CUseDAOView::OnGetRecordset()
{
	return m_pSet;
}


/////////////////////////////////////////////////////////////////////////////
// CUseDAOView message handlers

void CUseDAOView::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	CRect rect;
	GetClientRect(&rect);
	m_listvcd.MoveWindow(rect);

}

void CUseDAOView::OnAddrecord() 
{
	CAddRecord addDlg;
	if(addDlg.DoModal()==IDOK)
	{
		if(addDlg.csName.IsEmpty())
		{
			AfxMessageBox("不能添加空记录!");
			return;
		}

		m_pSet->AddNew();
		m_pSet->m_column2 = addDlg.csName;
		m_pSet->m_column3 = addDlg.csClass;
		m_pSet->m_column4 = addDlg.csCountry;
		m_pSet->Update();

		DisplayRecord();
	}
	
}

void CUseDAOView::OnDeleterecord() 
{
	POSITION pos = m_listvcd.GetFirstSelectedItemPosition();
	if(pos==NULL)
		return;

	int nItem=m_listvcd.GetNextSelectedItem(pos);
	m_pSet->Move(nItem);

	CString csTemp;
	csTemp.Format("你的确定删除电影\"%s\"吗?", (LPCTSTR)m_pSet->m_column2);

	if(AfxMessageBox(csTemp, MB_YESNO|MB_ICONEXCLAMATION)==IDYES)
	{
		m_pSet->Delete();
		m_pSet->MoveFirst();
		DisplayRecord();
	}	
}

void CUseDAOView::OnFindrecord() 
{
	CFindRecord findDlg;
	if(findDlg.DoModal()==IDOK)
	{
		if(findDlg.csName.IsEmpty())
		{
			AfxMessageBox("被寻找电影名称不能为空!");
			return;
		}

		for(int i = 0; i < m_listvcd.GetItemCount(); i++)
		{
			if(m_listvcd.GetItemText(i, 1) == findDlg.csName)
			{
				CRect rect;
				m_listvcd.GetItemRect(i, &rect, LVIR_BOUNDS);
				CDC *pDC = m_listvcd.GetDC();
				pDC->InvertRect(rect);

				break;
			}
		}
	}	
}

void CUseDAOView::OnModifyrecord() 
{
	POSITION pos=m_listvcd.GetFirstSelectedItemPosition();
	if(pos==NULL)
		return;

	int nItem=m_listvcd.GetNextSelectedItem(pos);
	m_pSet->Move(nItem);
	CEditRecord editDlg;
	editDlg.csName = m_pSet->m_column2;
	editDlg.csClass = m_pSet->m_column3;
	editDlg.csCountry = m_pSet->m_column4;

	if(editDlg.DoModal()==IDOK)
	{
		m_pSet->Edit();
		m_pSet->m_column2 = editDlg.csName;
		m_pSet->m_column3 = editDlg.csClass;
		m_pSet->m_column4 = editDlg.csCountry;
		m_pSet->Update();

		DisplayRecord();
	}	
}

void CUseDAOView::DisplayRecord()
{
	m_listvcd.DeleteAllItems();

	m_pSet->MoveFirst();
	int i=0;
	while(!m_pSet->IsEOF())
	{
		LV_ITEM lvItem;
		lvItem.mask = LVIF_TEXT;
		lvItem.iItem = i;
		
		lvItem.iSubItem=0;
		CString csNumber;
		csNumber.Format("%d", m_pSet->m_column1);
		lvItem.pszText=(LPTSTR)(LPCTSTR)csNumber;
		m_listvcd.InsertItem(&lvItem);
	
		lvItem.iSubItem = 1;
		lvItem.pszText=(LPTSTR)(LPCTSTR)(m_pSet->m_column2);
		m_listvcd.SetItem(&lvItem);
		
		lvItem.iSubItem=2;
		lvItem.pszText=(LPTSTR)(LPCTSTR)(m_pSet->m_column3);
		m_listvcd.SetItem(&lvItem);

		lvItem.iSubItem=3;
		lvItem.pszText=(LPTSTR)(LPCTSTR)(m_pSet->m_column4);
		m_listvcd.SetItem(&lvItem);


		i++;
		m_pSet->MoveNext();
	}

	m_listvcd.SetColumnWidth(0,50);
	m_listvcd.SetColumnWidth(1,150);
    m_listvcd.SetColumnWidth(2,100);
    m_listvcd.SetColumnWidth(3,100);
    m_pSet->MoveFirst();
}

⌨️ 快捷键说明

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