树形控件

  • 格式:ppt
  • 大小:606.50 KB
  • 文档页数:23

下载文档原格式

  / 23
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

保存查询
在VC项目中增加新类


增加与查询bjlist相关 的记录集类 如右图: 类名为CTableBJ 基类为CRecordset 在新类中加入包含文件 #include <afxdb.h>
在Doc类中增加CTableBJ的对象

在文档类中增加成员变量, 假设变量名取为m_bj, 变量类型 为刚增加的新的记录集类 CTableBJ
CTreeCtrl 树形控件
数据库中的视图 CTreeCtrl

数据库中的视图

表: 存储实际数据 视图: 从表中按某种规则提取出的数据,
Access数据库
表stinfo
ID Name Sex BJ
视图BJList
BJ
1
2 3
zhang
li Dong

女 女
2002信管
2001信管 2001信管 ..
在CLeftView中的增加成员函数ShowBJ()

ShowBJ( )实现从文档的记录集m_bj中提取信息加入到树形 控件中
CTreeCtrl中的成员函数

BOOL DeleteAllItems( ); //删除所有项目 HTREEITEM InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST ); 在树开控件中增中项目, 项目插入后将返回该项目的句柄( HTREEITEM) , lpszitem为项目字符串, hParent是确定新项目的双亲( TVI_ROOT表示为根), hinsertAfter为插入在哪个“兄弟”之后, 缺省为加入到最后 HTREEITEM GetSelectedItem( ); CString GetItemText( HTREEITEM hItem );
OnSelchanged( )成员函数的实现
void CLeftView::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; // TODO: Add your control notification handler code here CXieHuiDoc* pDoc = GetDocument(); //获得文档指针 HTREEITEM ht = GetTreeCtrl().GetSelectedItem(); //获得当前选项句柄 pDoc->m_cursel = GetTreeCtrl().GetItemText( ht ); //将当前班级名称存入 m_cursel pDoc->UpdateAllViews(NULL); //更新所有视图



CLeftView中的成员函数ShowBJ( )

在OnInitialUpdate( )中调用ShowBJ( );
运行程序, 左边视图应显示班级列表
左右视图内容的一致性
CLeftView CxxxView
... 2002信管 ...
CxxxxDoc m_bj m_stinfo m_cursel
m_bj记录集的打开和关闭

分别在文档类的构造函数与析构函数中增加m_bj的打开 Open()和关闭Close()操作.
构造函数
析构函数
CLeftView中的树形控件

CTreeView中有一个成员函数 GetTreeCtrl( )可获得该树形控件的引用
来自百度文库
MSDN中的帮助信息

即在CLeftView中可通过继承CTreeView中的GetTreeCtrl( ) 获得树形控件的引用, 从而可以向控件中增加选择项
2002信管
2001信管
如何从数据库的提取班级信息


希望从stinfo表中提取班级字段, 且每一个班级名称只有一 个记录 方法: 在数据库中创建一个视图(Access中称为查询)
创建一个查询(从STINFO表中创建)
通过双击表中的字段增加到查询中
在增加的字段上通过右键菜单选合计

让该字段进行Group by操作,即相同项进行组合
UpdateAllViews()
在文档类中增加成员变量m_cursel
CString m_cursel; 保存左边视图选择的班级 提供右边视图显示学生信息时进行检索的条件
CLeftView中增加选择班级的消息处理
增加对TVN_SELCHANGED的处理
选择TVN_SELCHANGED 点击Add Handler 增加OnSelchanged()消息处理函数
}
*pResult = 0;
改进CxxView中的ShowStinfo( )
红线为增/改过和行
在CxxxView中增加OnUpdate( )消息处理

当文档类的UpdateAllViews()被调用时, 所有关联的视都会收到消息,并 执行OnUpdate( )成员函数, 在此调用ShowStinfo()