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

📄 lhwyview.cpp

📁 VC成绩管理系统
💻 CPP
字号:
// lhwyView.cpp : implementation of the CLhwyView class
//

#include "stdafx.h"
#include "lhwy.h"

#include "lhwySet.h"
#include "lhwyDoc.h"
#include "lhwyView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CLhwyView

IMPLEMENT_DYNCREATE(CLhwyView, CRecordView)

BEGIN_MESSAGE_MAP(CLhwyView, CRecordView)
	//{{AFX_MSG_MAP(CLhwyView)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_DELECT, OnDelect)
	ON_BN_CLICKED(IDC_FIND, OnFind)
	ON_BN_CLICKED(IDC_EDIT, OnEdit)
	ON_BN_CLICKED(IDC_ALL, OnAll)
	ON_WM_CTLCOLOR()
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_BN_CLICKED(IDC_SORT, OnSort)
	//}}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()

/////////////////////////////////////////////////////////////////////////////
// CLhwyView construction/destruction

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

}

CLhwyView::~CLhwyView()
{
}

void CLhwyView::DoDataExchange(CDataExchange* pDX)
{
	CRecordView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLhwyView)
	DDX_Control(pDX, IDC_SORT, m_SortButton);
	DDX_Control(pDX, IDC_FIND, m_FindButton);
	DDX_Control(pDX, IDC_EDIT, m_EditButton);
	DDX_Control(pDX, IDC_DELECT, m_DelectButton);
	DDX_Control(pDX, IDC_ALL, m_AllButton);
	DDX_Control(pDX, IDC_ADD, m_AddButton);
	DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
	
	//}}AFX_DATA_MAP
}

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

	return CRecordView::PreCreateWindow(cs);
}

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

    
//创刷子用来设置界面背景色
    m_Brush=CreateSolidBrush(RGB(30,180,180));
//设表格表题和列的宽度

    m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
    m_ListCtrl.InsertColumn(0,_T("学号"),LVCFMT_IMAGE|LVCFMT_LEFT);
	m_ListCtrl.InsertColumn(1,_T("姓名"));
	m_ListCtrl.InsertColumn(2,_T("数学"));
	m_ListCtrl.InsertColumn(3,_T("英语"));

	int j;
    for(j=0;j<4;j++)
	{
	  m_ListCtrl.SetColumnWidth(j ,90);
	}
	
//显示所有记录
	this->Show();


}

/////////////////////////////////////////////////////////////////////////////
// CLhwyView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CLhwyView diagnostics

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

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

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

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


/////////////////////////////////////////////////////////////////////////////
// CLhwyView message handlers
int  CLhwyView::Show()
{
	int i=0;
	m_pSet->MoveFirst();
    do
	 {  
		CString s;
        s.Format("%d",m_pSet->m_column1);
        m_ListCtrl.InsertItem(i,s,0);
		m_ListCtrl.SetItemText(i,1,m_pSet->m_column2);
        s.Format("%d",m_pSet->m_column3);
	    m_ListCtrl.SetItemText(i,2,s);
        s.Format("%d",m_pSet->m_column4);
        m_ListCtrl.SetItemText(i,3,s);
		i++;
        m_pSet->MoveNext();
		
		}  while(!m_pSet->IsEOF());
        m_pSet->MoveFirst();
		return i;
}

//增加记录
void CLhwyView::OnAdd() 
{
	// TODO: Add your control notification handler code here
	
    CAddDialog dlg;
	if( dlg.DoModal()==IDOK)
	  {  
		if(dlg.m_Xuehao==0)
		{
		 AfxMessageBox("学号不可为零!");
		}
		else
		{
		 m_pSet->AddNew();
	     m_pSet->m_column1=dlg.m_Xuehao;
         m_pSet->m_column2=dlg.m_strName;
	     m_pSet->m_column3=dlg.m_Maths;
		 m_pSet->m_column4=dlg.m_English;
         m_pSet->Update();
	     m_pSet->Requery();
	     m_pSet->MoveLast();

		CString s;
        s.Format("%d",dlg.m_Xuehao);
        m_ListCtrl.InsertItem(0,s,0);
		m_ListCtrl.SetItemText(0,1,dlg.m_strName);
		s.Format("%d",dlg.m_Maths);
		m_ListCtrl.SetItemText(0,2,s);
        s.Format("%d",dlg.m_English);
        m_ListCtrl.SetItemText(0,3,s);
		}
	}   
        m_pSet->MoveFirst();
	

   }

//删除记录
void CLhwyView::OnDelect() 
{
	// TODO: Add your control notification handler code here

    CDeleteDialog dlg;
	if(dlg.DoModal()==IDOK)
	{
	  if(dlg.m_Password!=1234)
	  AfxMessageBox("你没有权限删除记录!请重输入密码:");
	  else
		{   
		 BOOL b=FALSE;
		 m_pSet->MoveFirst();
		 do
		 {
		  if(dlg.m_Xuehao!=m_pSet->m_column1)
		  m_pSet->MoveNext();
		  else
			{   
			 m_ListCtrl.DeleteAllItems();
			 b=TRUE;
			 m_pSet->Delete();
					
			 m_pSet->Requery();
			 this->Show();
			 m_pSet->MoveFirst();
			 break;
			} 
		}while(!m_pSet->IsEOF());
	          
	if(b==FALSE)
	AfxMessageBox("没有此记录");
	  }
	}
}

//查寻记录
void CLhwyView::OnFind() 
{
	// TODO: Add your control notification handler code here

	BOOL k=FALSE;
	CFindDialog dlg;
	if(dlg.DoModal()==IDOK)
	{
	  m_pSet->MoveFirst();
	  m_ListCtrl.DeleteAllItems();
	  do{
		if(dlg.m_Maths!=m_pSet->m_column3)
		m_pSet->MoveNext();
		else
			{
			 k=TRUE;
		     CString s;
			 s.Format("%d",m_pSet->m_column1);
			 m_ListCtrl.InsertItem(0,s);
			 m_ListCtrl.SetItemText(0,1,m_pSet->m_column2);
			 s.Format("%d",m_pSet->m_column3); 
		     m_ListCtrl.SetItemText(0,2,s);
             s.Format("%d",m_pSet->m_column3);
             m_ListCtrl.SetItemText(0,3,s);  
			 m_pSet->MoveNext();
		} 

	}  while(!m_pSet->IsEOF());
        
	if(k==FALSE)
	AfxMessageBox("没有符和条件的记录");
	}
}

//修改记录
void CLhwyView::OnEdit() 
{
	// TODO: Add your control notification handler code here
  CEditDialog dlg;
 
  if(dlg.DoModal()==IDOK)
	{
	  if(dlg.m_Password!=1234)
	  AfxMessageBox("你没有权限更改记录!请重输入密码:");
	  else
		  {   
		   BOOL b=FALSE;
		   m_pSet->MoveFirst();
		   do
			{
			 if(dlg.m_Xuehao!=m_pSet->m_column1)
			 m_pSet->MoveNext();
			 else
				{  	
				m_ListCtrl.DeleteAllItems();
				m_pSet->Edit();
				b=TRUE;
			    m_pSet->m_column1=dlg.m_Xuehao;
				m_pSet->m_column2=dlg.m_strName;
				m_pSet->m_column3=dlg.m_Maths;
				m_pSet->m_column4=dlg.m_English;
				m_pSet->Update();

					
				m_pSet->Requery();
				this->Show();
				m_pSet->MoveFirst();
				break;
				} 
			}while(!m_pSet->IsEOF());
	          if(b==FALSE)
			  AfxMessageBox("没有此记录");
		}
	}
	
}

void CLhwyView::OnAll() 
{
	// TODO: Add your control notification handler code here
	m_ListCtrl.DeleteAllItems();
	
	this->Show();
}

//排序记录
void CLhwyView::OnSort() 
{
	// TODO: Add your control notification handler code here
	m_ListCtrl.DeleteAllItems();
    m_pSet->m_strSort="[学号]";
	m_pSet->Requery();
	
	this->Show();
	
	
}

//设置界面为草绿色
HBRUSH CLhwyView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	return m_Brush;
}

void CLhwyView::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	POSITION pos =m_ListCtrl.GetFirstSelectedItemPosition();
	if(pos)
	{   
	
		int nItem = m_ListCtrl.GetNextSelectedItem(pos);
		CString s;
		s.Format("学号:%s 姓名:%s",m_ListCtrl.GetItemText(nItem,0),m_ListCtrl.GetItemText(nItem,1));
	
		GetDlgItem(IDC_STATIC)->SetWindowText(s);
		
		}
	
	
	*pResult = 0;
}


⌨️ 快捷键说明

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