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

📄 myleftview.cpp

📁 一个学生考试成绩管理的半成品
💻 CPP
字号:
// MyLeftView.cpp : 实现文件
//

#include "stdafx.h"
#include "ScoreGather.h"
#include "MyLeftView.h"
#include ".\myleftview.h"


// CMyLeftView

IMPLEMENT_DYNCREATE(CMyLeftView, CTreeView)

CMyLeftView::CMyLeftView()
: WindowsType(_T(""))
{
}

CMyLeftView::~CMyLeftView()
{
}

BEGIN_MESSAGE_MAP(CMyLeftView, CTreeView)
	ON_WM_ERASEBKGND()
	ON_NOTIFY_REFLECT(TVN_ITEMEXPANDED, OnTvnItemexpanded)
	ON_NOTIFY_REFLECT(TVN_ITEMEXPANDING, OnTvnItemexpanding)
END_MESSAGE_MAP()


// CMyLeftView 诊断

#ifdef _DEBUG
void CMyLeftView::AssertValid() const
{
	CTreeView::AssertValid();
}

void CMyLeftView::Dump(CDumpContext& dc) const
{
	CTreeView::Dump(dc);
}
#endif //_DEBUG


// CMyLeftView 消息处理程序

void CMyLeftView::OnInitialUpdate()
{
	CTreeView::OnInitialUpdate();
	::SetWindowLong(m_hWnd,GWL_STYLE,WS_VISIBLE | WS_TABSTOP 
						| WS_CHILD | WS_BORDER| TVS_HASBUTTONS 
						| TVS_LINESATROOT | TVS_HASLINES
						| TVS_DISABLEDRAGDROP|TVS_SHOWSELALWAYS);
	CScoreGatherApp* pApp = (CScoreGatherApp*)AfxGetApp();
	CTreeCtrl *pTreeCtrl= &GetTreeCtrl();
	pTreeCtrl->SetTextColor(RGB(0,0,255));
	pTreeCtrl->SetBkColor(::GetSysColor(COLOR_3DFACE));
	AddTree();
	pTreeCtrl->SortChildren(TVI_ROOT);
}

HTREEITEM CMyLeftView::AddTree(void)
{
	CTreeCtrl* pTreeCtrl = &GetTreeCtrl();
	TV_INSERTSTRUCT TCItem;//插入数据项数据结构
	TCItem.hParent = TVI_ROOT;
	TCItem.hInsertAfter = TVI_LAST;
	TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//设屏蔽
	CString string;
	string="教学成绩总览";
	TCItem.item.pszText = (LPTSTR)(LPCTSTR)string;
	HTREEITEM hSectionItem = pTreeCtrl->InsertItem(&TCItem);
	CStringArray str;
	str.Add("学生单科成绩");
	str.Add("学生全科成绩");
	str.Add("班级学科成绩");
	str.Add("教师教学成绩");
	str.Add("学生成绩单");
	for(int row=1;row<=5;row++)
		AddMainTree(hSectionItem,str[row-1],row);
	pTreeCtrl->Expand(hSectionItem,TVE_EXPAND);
	return HTREEITEM();
}

HTREEITEM CMyLeftView::AddMainTree(HTREEITEM hSectionItem, CString str, int row)
{
	CTreeCtrl* pCtrl = &GetTreeCtrl();
	TV_INSERTSTRUCT TCItem;
	TCItem.hParent = hSectionItem;
	TCItem.hInsertAfter = TVI_LAST;
	TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//设屏蔽
	TCItem.item.lParam=row;//序号
	TCItem.item.iImage=row;//正常图标
	TCItem.item.iSelectedImage=row;//选中时图标
	TCItem.item.pszText = (LPTSTR)(LPCTSTR)str;
	hSectionItem = pCtrl->InsertItem(&TCItem);
	return HTREEITEM();
}

BOOL CMyLeftView::OnEraseBkgnd(CDC* pDC)
{
	CBrush brush(::GetSysColor(COLOR_3DFACE));
	CBrush* pOldBrush=pDC->SelectObject(&brush);
	CRect rcClip;
	pDC->GetClipBox(&rcClip);
	pDC->PatBlt(rcClip.left,rcClip.top,rcClip.Width(),rcClip.Height(),PATCOPY);
	pDC->SelectObject(pOldBrush);
	return TRUE;
}

void CMyLeftView::OnTvnItemexpanded(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
	Invalidate();
	SetRedraw(TRUE);
	*pResult = 0;
}

void CMyLeftView::OnTvnItemexpanding(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
	SetRedraw(FALSE);
	*pResult = 0;
}

⌨️ 快捷键说明

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