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

📄 unittreectrl.cpp

📁 课程设计的简单Access学生数据库系统
💻 CPP
字号:
// UnitTreeCtrl.cpp : implementation file
//

#include "stdafx.h"
#include "sm.h"
#include "unit.h"
#include "class.h"
#include "unitdlg.h"
#include "classdlg.h"
#include "UnitTreeCtrl.h"
#include "smdlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CUnitTreeCtrl

//##ModelId=40A481EF02AF
CUnitTreeCtrl::CUnitTreeCtrl()
{
}

//##ModelId=40A481EF03A9
CUnitTreeCtrl::~CUnitTreeCtrl()
{
}


BEGIN_MESSAGE_MAP(CUnitTreeCtrl, CTreeCtrl)
	//{{AFX_MSG_MAP(CUnitTreeCtrl)
	ON_WM_CREATE()
	ON_WM_CHILDACTIVATE()
	ON_WM_CONTEXTMENU()
	ON_NOTIFY_REFLECT(NM_RCLICK, OnRclick)
	ON_COMMAND(ID_DELETE, OnDelete)
	ON_COMMAND(ID_POP_NEW_UNIT, OnPopNewUnit)
	ON_COMMAND(ID_POP_NEW_CLASS, OnPopNewClass)
	ON_COMMAND(ID_POP_VIEW, OnPopView)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUnitTreeCtrl message handlers

//##ModelId=40A481EF03BA
int CUnitTreeCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
		
	if (CTreeCtrl::OnCreate(lpCreateStruct) == -1)
		return -1;
	return 0;
}

//##ModelId=40A481EF03C8
void CUnitTreeCtrl::OnChildActivate() 
{
	CTreeCtrl::OnChildActivate();
}

//##ModelId=40A481EF02B0
BOOL CUnitTreeCtrl::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
{
	
	
	return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
}

//##ModelId=40A481EF02D0
BOOL CUnitTreeCtrl::PreCreateWindow(CREATESTRUCT& cs) 
{
	
	
	return CTreeCtrl::PreCreateWindow(cs);
}

//##ModelId=40A481EF03CA
void CUnitTreeCtrl::OnContextMenu(CWnd* pWnd, CPoint point) 
{
	// TODO: Add your message handler code here
	
}

//##ModelId=40A481EF03DA
void CUnitTreeCtrl::OnRclick(NMHDR* pNMHDR, LRESULT* pResult) 
{
	CMenu menu; 
 	CPoint p;
 	GetCursorPos(&p);
	m_MousePoint = p;
	ScreenToClient(&m_MousePoint);
 	menu.LoadMenu(IDR_UNIT_POP_MENU);
 	menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTBUTTON|TPM_LEFTALIGN, p.x, p.y,this);
	*pResult = 0;
}

//##ModelId=40A481F00002
void CUnitTreeCtrl::OnDelete() 
{
	UnitClassTree *pUnitClassTree = ((CSMDlg*)AfxGetMainWnd())->pUnitClassTree;
	HTREEITEM item = HitTest(m_MousePoint);
	if(pUnitClassTree->GetType(item)==1)//class
	{
		if(IDOK==AfxMessageBox("将删除所有相关的学生成绩记录, 慎重!", MB_OKCANCEL   ))
		{
			int id = pUnitClassTree->GetClass(item).ID; 
			CDaoTableDef td(&theDatabase);
			td.Open(_T("class"));
			CDaoRecordset RS;
			RS.Open(&td);
			
			pUnitClassTree->GetClass(item).Delete(&RS);
			pUnitClassTree->DeleteClass(id);

			RS.Close();
			td.Close();
		}
	}
	else
	{
		try
		{
			if(IDOK==AfxMessageBox("将删除所有相关的班级学生成绩记录, 慎重!", MB_OKCANCEL   ) )
			{
				long id = pUnitClassTree->GetParent(pUnitClassTree->GetUnit(item).ID);
				CDaoTableDef td(&theDatabase);
				td.Open(_T("unit"));
				CDaoRecordset RS;
				RS.Open(&td);

				pUnitClassTree->GetUnit(item).DeleteAssociate(&RS);
				pUnitClassTree->GetUnit(item).Delete(&RS);

				RS.Close();
				td.Close();
				pUnitClassTree->ReLoad();
				pUnitClassTree->SetSelectUnit(id);
			}
		}
		catch(CException *e)
		{
			DisplayException(e);
		}
	}
}

//##ModelId=40A481F0000F
void CUnitTreeCtrl::OnPopNewUnit() 
{

	UnitClassTree *pUnitClassTree = ((CSMDlg*)AfxGetMainWnd())->pUnitClassTree;
	CUnitDlg dlg(pUnitClassTree->GetUnit(HitTest(m_MousePoint)).ID);
	try
	{
		int r = dlg.DoModal();
		if(r)
		{
			pUnitClassTree->ReLoad();
			pUnitClassTree->SetSelectUnit(r);
		}
	}
	catch(CException *e)
	{
		DisplayException(e);
	}
	
}

//##ModelId=40A481F00011
void CUnitTreeCtrl::OnPopNewClass() 
{
	UnitClassTree *pUnitClassTree = ((CSMDlg*)AfxGetMainWnd())->pUnitClassTree;
	CClassDlg dlg(pUnitClassTree->GetUnit(HitTest(m_MousePoint)).ID);
	try
	{
		int r = dlg.DoModal();
		if(r)
		{
			pUnitClassTree->ReLoad();
			pUnitClassTree->SetSelectClass(r);
		}
	}
	catch(CException *e)
	{
		DisplayException(e);
	}
}

//##ModelId=40A481F00020
void CUnitTreeCtrl::OnPopView() 
{
	UnitClassTree *pUnitClassTree = ((CSMDlg*)AfxGetMainWnd())->pUnitClassTree;
	HTREEITEM item = HitTest(m_MousePoint);
	try
	{
		if(pUnitClassTree->GetType(item)==1)//class
		{
			CClassDlg dlg(&pUnitClassTree->GetClass(item));
			int id;
			if(id=dlg.DoModal())
				pUnitClassTree->UpdateClass(id);
		}
		else
		{
			CUnitDlg dlg(&(pUnitClassTree->GetUnit(item)));
			int r = dlg.DoModal();
			if(r)
			{
				pUnitClassTree->ReLoad();
				pUnitClassTree->SetSelectUnit(r);
			}
		}
	}
	catch(CException *e)
	{
		DisplayException(e);
	}
}

⌨️ 快捷键说明

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