BookAdminView.cpp
上传用户:weisheen
上传日期:2022-07-09
资源大小:19390k
文件大小:5k
源码类别:
ActiveX/DCOM/ATL
开发平台:
Visual C++
- // BookAdminView.cpp : implementation of the CBookAdminView class
- //
- #include "stdafx.h"
- #include "BookAdmin.h"
- #include "BookAdminDoc.h"
- #include "BookAdminView.h"
- #include "./DlgBookAdd.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CBookAdminView
- IMPLEMENT_DYNCREATE(CBookAdminView, CListView)
- BEGIN_MESSAGE_MAP(CBookAdminView, CListView)
- //{{AFX_MSG_MAP(CBookAdminView)
- ON_COMMAND(ID_BUTTON32772, OnButton32772)
- ON_COMMAND(ID_BUTTON32773, OnButton32773)
- //}}AFX_MSG_MAP
- // Standard printing commands
- ON_COMMAND(ID_FILE_PRINT, CListView::OnFilePrint)
- ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView::OnFilePrint)
- ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView::OnFilePrintPreview)
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CBookAdminView construction/destruction
- CBookAdminView::CBookAdminView()
- {
- // TODO: add construction code here
- }
- CBookAdminView::~CBookAdminView()
- {
- }
- BOOL CBookAdminView::PreCreateWindow(CREATESTRUCT& cs)
- {
- // TODO: Modify the Window class or styles here by modifying
- // the CREATESTRUCT cs
- return CListView::PreCreateWindow(cs);
- }
- /////////////////////////////////////////////////////////////////////////////
- // CBookAdminView drawing
- void CBookAdminView::OnDraw(CDC* pDC)
- {
- CBookAdminDoc* pDoc = GetDocument();
- ASSERT_VALID(pDoc);
- CListCtrl& refCtrl = GetListCtrl();
- refCtrl.InsertItem(0, "Item!");
- // TODO: add draw code for native data here
- }
- void CBookAdminView::OnInitialUpdate()
- {
- CListView::OnInitialUpdate();
- //创建列;
- this->GetListCtrl().InsertColumn(0,"BookName",LVCFMT_CENTER,200);
- this->GetListCtrl().InsertColumn(1,"BookAuther",LVCFMT_CENTER,200);
- //添加数据;
- POSITION ps;
- ps=this->GetDocument()->allBooks.GetHeadPosition();
- while(ps!=NULL)
- {
- BookEntity* be=this->GetDocument()->allBooks.GetNext(ps);
- this->GetListCtrl().InsertItem(0,be->BookName);
- this->GetListCtrl().SetItemText(0,1,be->BookAuthor);
- this->GetListCtrl().SetItemData(0,be->BookIsnb);
- }
- // TODO: You may populate your ListView with items by directly accessing
- // its list control through a call to GetListCtrl().
- }
- /////////////////////////////////////////////////////////////////////////////
- // CBookAdminView printing
- BOOL CBookAdminView::OnPreparePrinting(CPrintInfo* pInfo)
- {
- // default preparation
- return DoPreparePrinting(pInfo);
- }
- void CBookAdminView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
- {
- // TODO: add extra initialization before printing
- }
- void CBookAdminView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
- {
- // TODO: add cleanup after printing
- }
- /////////////////////////////////////////////////////////////////////////////
- // CBookAdminView diagnostics
- #ifdef _DEBUG
- void CBookAdminView::AssertValid() const
- {
- CListView::AssertValid();
- }
- void CBookAdminView::Dump(CDumpContext& dc) const
- {
- CListView::Dump(dc);
- }
- CBookAdminDoc* CBookAdminView::GetDocument() // non-debug version is inline
- {
- ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CBookAdminDoc)));
- return (CBookAdminDoc*)m_pDocument;
- }
- #endif //_DEBUG
- /////////////////////////////////////////////////////////////////////////////
- // CBookAdminView message handlers
- void CBookAdminView::OnStyleChanged(int nStyleType, LPSTYLESTRUCT lpStyleStruct)
- {
- //TODO: add code to react to the user changing the view style of your window
- }
- void CBookAdminView::OnButton32772()
- {
- // TODO: Add your command handler code here
- //找到被删除的记录ID;
- int index=this->GetListCtrl().GetNextItem(-1,LVNI_SELECTED|LVNI_ALL);
- if(index==-1)
- {
- MessageBox("请首先选中一条记录!");
- }
- else
- {
- UINT iOk=MessageBox("你真的要删除吗?","删除确认",MB_YESNO);
- //从当前的界面上删除;
- if(iOk==6)
- {
- //
- DWORD isbn=this->GetListCtrl().GetItemData(index);
- UINT iResult=0;
- this->GetDocument()->GetDbTools()->DeleteBookById((UINT)isbn,&iResult);
- this->GetListCtrl().DeleteItem(index);
- }
- }
- }
- void CBookAdminView::OnButton32773()
- {
- // TODO: Add your command handler code here
- //1. 获得被编辑的记录id;
- int index=this->GetListCtrl().GetNextItem(-1,LVNI_ALL|LVNI_SELECTED);
- if(index==-1)
- {
- MessageBox("请首先选中一条记录");
- return ;
- }
- //2. 显示被编辑的数据;
- UINT id=(UINT)(this->GetListCtrl().GetItemData(index));
- DTOBook* pCurrentData=NULL;
- this->GetDocument()->GetDbTools()->GetBookByIsbn(id,&pCurrentData);
- //3. 获得修改后的数据;
- DlgBookAdd dlg;
- dlg.m_bookisbn=id;
- dlg.m_bookname=CString(pCurrentData->BookName);
- dlg.m_bookauthor=CString(pCurrentData->BookAuthor);
- ::SysFreeString(pCurrentData->BookName);
- ::SysFreeString(pCurrentData->BookAuthor);
- dlg.DoModal();
- //4. 更新数据库;
- if(!dlg.m_bIsOk) return ;
- pCurrentData->BookAuthor=dlg.m_bookauthor.AllocSysString();
- pCurrentData->BookName=dlg.m_bookname.AllocSysString();
- UINT iResult=0;
- this->GetDocument()->GetDbTools()->Update(pCurrentData,&iResult);
- if(iResult==0) return;
- //5. 更新界面;
- this->GetListCtrl().SetItemText(index,0,dlg.m_bookname) ;
- this->GetListCtrl().SetItemText(index,1,dlg.m_bookauthor);
- }