studentlistctrl.cpp
来自「课程设计的简单Access学生数据库系统」· C++ 代码 · 共 179 行
CPP
179 行
// StudentListCtrl.cpp : implementation file
//
#include "stdafx.h"
#include "sm.h"
#include "smdlg.h"
#include "StudentListCtrl.h"
#include "student.h"
#include "studentdlg.h"
#include "studentlist.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CStudentListCtrl
//##ModelId=40A481F20280
CStudentListCtrl::CStudentListCtrl()
{
}
//##ModelId=40A481F20290
CStudentListCtrl::~CStudentListCtrl()
{
}
BEGIN_MESSAGE_MAP(CStudentListCtrl, CListCtrl)
//{{AFX_MSG_MAP(CStudentListCtrl)
ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
ON_NOTIFY_REFLECT(NM_RDBLCLK, OnRdblclk)
ON_NOTIFY_REFLECT(NM_RCLICK, OnRclick)
ON_COMMAND(ID_POP_STU_DELETE, OnPopStuDelete)
ON_COMMAND(ID_POP_STU_VIEW, OnPopStuView)
ON_COMMAND(ID_POP_STU_NEW, OnPopStuNew)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CStudentListCtrl message handlers
//##ModelId=40A481F20292
void CStudentListCtrl::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
/* StudentList *pList = ((CSMDlg*)AfxGetMainWnd())->pList;
UnitClassTree *pUnitClassTree = ((CSMDlg*)AfxGetMainWnd())->pUnitClassTree;
try
{
if(pList->IsSelected())
{
int id;
if(pUnitClassTree->GetSelectType()==1)
id = pUnitClassTree->GetSelectClass().ID;
CStudentDlg dlg(&pList->GetSelectStudent());
if(dlg.DoModal())
pList->Load(id);
}
}
catch(CException *e)
{
DisplayException(e);
}*/
OnPopStuView();
*pResult = 0;
}
//##ModelId=40A481F202A0
void CStudentListCtrl::OnRdblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0;
}
//##ModelId=40A481F202AF
void CStudentListCtrl::OnRclick(NMHDR* pNMHDR, LRESULT* pResult)
{
CMenu menu;
CPoint p;
GetCursorPos(&p);
m_MousePoint = p;
ScreenToClient(&m_MousePoint);
menu.LoadMenu(IDR_POP_STU_MENU);
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTBUTTON|TPM_LEFTALIGN, p.x, p.y,this);
*pResult = 0;
}
//##ModelId=40A481F202BF
void CStudentListCtrl::OnPopStuDelete()
{
StudentList *pList = ((CSMDlg*)AfxGetMainWnd())->pList;
UnitClassTree *pUnitClassTree = ((CSMDlg*)AfxGetMainWnd())->pUnitClassTree;
try
{
if(pList->IsSelected())
{
int id ;
if(pUnitClassTree->GetSelectType()==1)
{
CDaoTableDef td(&theDatabase);
td.Open("student");
CDaoRecordset RS;
RS.Open(&td);
id = pUnitClassTree->GetSelectClass().ID;
long stu_sel = pList->GetSelected()-1;
pList->GetSelectStudent().Delete(&RS);
pList->Load(id);
pList->SetSelected(stu_sel);
RS.Close();
td.Close();
}
}
}
catch(CException *e)
{
DisplayException(e);
}
}
//##ModelId=40A481F202C1
void CStudentListCtrl::OnPopStuView()
{
StudentList *pList = ((CSMDlg*)AfxGetMainWnd())->pList;
UnitClassTree *pUnitClassTree = ((CSMDlg*)AfxGetMainWnd())->pUnitClassTree;
try
{
if(pList->IsSelected())
{
int cid, sid;
if(pUnitClassTree->GetSelectType()==1)
cid = pUnitClassTree->GetSelectClass().ID;
CStudentDlg dlg(&pList->GetSelectStudent());
if(sid=dlg.DoModal())
{
pList->Load(cid);
pList->SetSelectStudent(sid);
}
}
}
catch(CException *e)
{
DisplayException(e);
}
}
//##ModelId=40A481F202CE
void CStudentListCtrl::OnPopStuNew()
{
StudentList *pList = ((CSMDlg*)AfxGetMainWnd())->pList;
UnitClassTree *pUnitClassTree = ((CSMDlg*)AfxGetMainWnd())->pUnitClassTree;
if(pUnitClassTree->GetSelectType()!=1)
{
AfxMessageBox("请选择一个班级用以添加学生记录!!");
return;
}
try
{
long class_id = pUnitClassTree->GetSelectClass().ID, id;
CStudentDlg dlg;
if(id=dlg.DoModal())
{
pList->Load(class_id);
pList->SetSelectStudent(id);
}
}
catch(CException *e)
{
DisplayException(e);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?