ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于MFC和ACCESS的学生综合素质能力评价系统软件开发(5-主界面目录)

2021-05-15 10:01:54  阅读:143  来源: 互联网

标签:MFC LAST hFuncItem InsertItem hModItem 节点 ACCESS ctrlTree 系统软件


注:本文所涉及软件已申请软件著作权,请勿盗版,侵权必究。

文章目录


五、主界面目录

1、设置树控件

在OnCreate函数中加入:

	CRect crt=CRect(0, 0, 200, 1000);
	m_ctrlTree.Create(WS_CHILD | WS_VISIBLE |TVS_DISABLEDRAGDROP|TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT|TVS_SHOWSELALWAYS, crt, this, 0x285);
	return 0;

主要是设置树控件的一些属性
2、在OnDraw类添加:

	HTREEITEM hRoot;     // 树的根节点的句柄   
    HTREEITEM hModItem; // 可表示任一模块节点的句柄   
    HTREEITEM hFuncItem;  // 可表示任一功能节点的句柄   
	    // 插入根节点
	
	m_ctrlTree.DeleteAllItems();
    hRoot = m_ctrlTree.InsertItem(_T("主页"), 0, 0);   
    // 在根节点下插入子节点   
    hModItem = m_ctrlTree.InsertItem(_T("学生成绩"), 0, 0, hRoot, TVI_LAST); 
	// 在“学生成绩”节点下插入子节点   
    hFuncItem = m_ctrlTree.InsertItem(_T("成绩查询"), 0, 0, hModItem, TVI_LAST);
	m_ctrlTree.SetItemData(hFuncItem,11);
    hFuncItem = m_ctrlTree.InsertItem(_T("成绩录入"), 0, 0, hModItem, TVI_LAST);
	m_ctrlTree.SetItemData(hFuncItem,12);

	// 在根节点下插入子节点
    hModItem = m_ctrlTree.InsertItem(_T("实习实训"), 0, 0, hRoot, TVI_LAST);
	// 在“实习实训”节点下插入子节点   
    hFuncItem = m_ctrlTree.InsertItem(_T("实习实训报表"), 0, 0, hModItem, TVI_LAST); 
	m_ctrlTree.SetItemData(hFuncItem,21);


	// 在根节点下插入子节点
	hModItem = m_ctrlTree.InsertItem(_T("科研项目"), 0, 0, hRoot, TVI_LAST);
	// 在“科研项目”节点下插入子节点
	hFuncItem = m_ctrlTree.InsertItem(_T("项目查询"), 0, 0, hModItem, TVI_LAST); 
	m_ctrlTree.SetItemData(hFuncItem,31);
	hFuncItem = m_ctrlTree.InsertItem(_T("项目录入"), 0, 0, hModItem, TVI_LAST); 
	m_ctrlTree.SetItemData(hFuncItem,32);

	// 在根节点下插入子节点
	hModItem = m_ctrlTree.InsertItem(_T("科技竞赛"), 0, 0, hRoot, TVI_LAST);
	// 在“科技竞赛”节点下插入子节点
	hFuncItem = m_ctrlTree.InsertItem(_T("竞赛查询"), 0, 0, hModItem, TVI_LAST); 
	m_ctrlTree.SetItemData(hFuncItem,41);
	hFuncItem = m_ctrlTree.InsertItem(_T("竞赛录入"), 0, 0, hModItem, TVI_LAST); 
	m_ctrlTree.SetItemData(hFuncItem,42);

	// 在根节点下插入子节点
	hModItem = m_ctrlTree.InsertItem(_T("打印报告"), 0, 0, hRoot, TVI_LAST);
	// 在“打印报告”节点下插入子节点
	hFuncItem = m_ctrlTree.InsertItem(_T("打印报告"), 0, 0, hModItem, TVI_LAST); 
	m_ctrlTree.SetItemData(hFuncItem,51);
  
	//展开所有节点
	ExpandTree(m_ctrlTree.GetRootItem());

	m_ctrlTree.SetTextColor(RGB(51,102,153));//设置tree的文字色*/	
	m_ctrlTree.SetBkColor(RGB(230,230,230));//设置tree的背景色*/

其中定义了一个展开所有节点的函数:

    void CFormViewTree::ExpandTree(HTREEITEM hTreeItem)
{
    if(!m_ctrlTree.ItemHasChildren(hTreeItem))//如果树控件根节点没有子节点则返回
    {
        return;
    }
    HTREEITEM hNextItem = m_ctrlTree.GetChildItem(hTreeItem);//若树控件的根节点有子节点则获取根节点的子节点
    while (hNextItem != NULL)//若有
    {
        ExpandTree(hNextItem);//递归,展开子节点下的所有子节点
        hNextItem = m_ctrlTree.GetNextItem(hNextItem, TVGN_NEXT);//获取根节点的下一个子节点
    }
    m_ctrlTree.Expand(hTreeItem,TVE_EXPAND);//展开节点
}

3、添加OnSize函数,设置树控件没有滚动条

void CFormViewTree::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	ShowScrollBar(SB_BOTH,FALSE);
}

2、将登陆窗口中的用户信息传递到其他类中

这里参考了网上的方法,直接在Stdafx.h中声明extern类型的变量,并在Stdafx.cpp中进行初始化。这样这些变量就成为全局的了。这个方法不是最好的方法,但是比较简单。
Stdafx.h中声明:

extern CString m_Userid;
extern CString m_Role;
extern CString m_Name;

在Dlg_login中的OnOK函数中加入:

	m_Userid=m_login_userid;
		m_Name=(char*)(_bstr_t)m_pRecordset->GetCollect("USER_NAME");
		m_Role = (char*)(_bstr_t)m_pRecordset->GetCollect("ROLE");

目前登录后界面的效果如下:
在这里插入图片描述

标签:MFC,LAST,hFuncItem,InsertItem,hModItem,节点,ACCESS,ctrlTree,系统软件
来源: https://blog.csdn.net/mona_limerick/article/details/114525812

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有