网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
用树型控制展现Win95注册库
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

  王惠民

  树型控制是Win 95支持的公共控制之一,功能极强,对多数事件的响应都是自动实现的。如果 使用它来开发访问像Win 95注册库这样具有层次结构的复杂程序,则能够让您省事不少。有关树型控制及Win 95注册库本身的一些知识,请参考联机文挡。本文着重介绍采用树型控制展现Win 95注册库的有关实现方法及遇到问题时的处理过程。

  一、加入树型控制和像表小位图

  首先,建立以对话框为基础的主应用程序。然后,在其对话框资源中加入树型控制。可供选择的树型控制的风格属性(Styles)有:按钮(树中出现具有支持展开或收缩树层的功能的+或-操作按钮,对下面的风格属性可作类似理解)、连接线、线在根处等等。最后,加入树型控制的对应成员。例如:

  CTreeCtrl m_TREECtrlREG;

  像表小位图用来表示对树上的注册库关键字或子关键字被操作的状态,是可选的。为简单起见,可只用两幅小位图来区分有或无子关键字的关键字:一幅用来表示是有子关键字的关键字(类似于目录),另外一幅用来表示是无子关键字的关键字(类似于文件)。小位图的宽为15,高为16。

  以上具体操作过程从略。

  二、 最顶层和六个主层关键字名插入树

  在对话框的初始化函数OnInitDialog()中适宜做此工作,通过OnInitRootKey()函数来实现:

  BOOL CWRegTreeCtrlDlg::OnInitDialog()

  {

  //Add extra initialization here

  //像表小位图的建立

  CImageList* pMyIL = new CImageList();

  pMyIL->Create(16, 15, TRUE, 3, 2);

  CBitmap MyBmp;

  for(UINT nIndef=IDB_BMPBEG;

  nIndef<=IDB_BMPEND; nIndef++)

  { MyBmp.LoadBitmap(nIndef);

  pMyIL->Add(&MyBmp, (COLORREF)0xFFFFFF);

  MyBmp.DeleteObject();

  }

  m_TREECtrlREG.SetImageList(pMyIL, TVSIL_NORMAL);

  //最顶层和六个主层关键字名插入树子函数

  OnInitRootKey();

  return FALSE;

  }

  VOID CWRegTreeCtrlDlg::OnInitRootKey()

  {

  //全部清除树视图

  m_TREECtrlREG.DeleteAllItems();

  //建立初始树视图:最顶层和六个主层

  TV_INSERTSTRUCT TreeCtrlItem;//树控制项

  TreeCtrlItem.hParent = TVI_ROOT;//最顶层

  TreeCtrlItem.hInsertAfter = TVI_LAST;

  TreeCtrlItem.item.iImage = 1;//目录

  TreeCtrlItem.item.iSelectedImage = 1;

  TreeCtrlItem.item.mask=TVIF_IMAGE|TVIF_SELECTEDIMAGE| TVIF_TEXT|TVIF_CHILDREN;

  TreeCtrlItem.item.pszText =_T(strTemp0.GetBuffer(20));

  //“<我的电脑>顶层”

  //插入树根

  hTreeItem[0]=m_TREECtrlREG.InsertItem(&TreeCtrlItem);

  TreeCtrlItem.hParent =hTreeItem[0];//第一主层

  TreeCtrlItem.hInsertAfter = TVI_LAST;

  TreeCtrlItem.item.iImage = 1;

  TreeCtrlItem.item.iSelectedImage = 1;

  TreeCtrlItem.item.mask=TVIF_IMAGE|TVIF_SELECTEDIMAGE| TVIF_TEXT|TVIF_CHILDREN;

  TreeCtrlItem.item.pszText =_T(rStr.GetBuffer(18) );

  //“HKEY_CLASSES_ROOT”

  //插入树根

  hTreeItem= m_TREECtrlREG.InsertItem(&TreeCtrlItem);

  //插入第二到第六主层与插入第一主层“HKEY_CLASSES_ROOT”的代码类似,具体代码从略

  //展开最顶层

  m_TREECtrlREG.Expand(hTreeItem[0],TVE_EXPAND);

  hCurItem=hTreeItem[0];

  

  //访问注册库时最顶层和主层位置路径句柄的初值

  hKeyRoot = 0;

  return;

  }

  

  三、用鼠标单击+或-按钮或者双击树项关键字名操作的响应

  

  在树上插入与显示注册库各
  • 下一篇资讯: VC制作超联接控件
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号