科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VC中Windows常用控件的创建和使用

VC中Windows常用控件的创建和使用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文将要介绍的Windows控件指的是Windows系统预定义的标准控件,如按钮控件、编辑控件和列表控件等。

作者:青岛郎锐 来源:天极网 2007年10月19日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
树形控件

  树形控件是一种可以分级显示项目列表的窗口,其所含项目以相互关联的方式显示在控件中,通过点击位于某个层次的项目节点可以展开下一层次中从属于该节点的所有项目。树形控件非常适合于管理那些层次较多且相互间隶属关系较为清晰的项目元素。在MFC中,由CTreeCtrl类提供了对树形控件的功能支持。

  在用Create()创建了一个树形控件后可以用SetImageList()函数为其设置一个图象列表,这样就可以在树形控件中为各个层次的项目设置图标。通过InsertItem()函数可以为其添加数据项,返回的HTREEITEM类型的句柄唯一标识了此添加的项目。该句柄应当妥善保管,只有通过该句柄才能为此项目继续添加子项目。如果在创建子窗口时指定父窗口句柄为NULL,则将直接在根目录创建项目。下面这段代码将通过上述函数创建一个树形控件并向其添加二个层次的项目:

// 创建一个树形控件
m_ctrTreeCtrl.Create(WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_LINESATROOT | TVS_HASLINES | TVS_HASBUTTONS | TVS_EDITLABELS, CRect(500, 50, 670, 200),this, IDC_TREE1);
……
TV_ITEM tvItem;
TV_INSERTSTRUCT tvInsert;
tvItem.mask = TVIF_TEXT; // 指定pszText成员可用
tvItem.pszText = "Item0"; // 根项目显示的字符
tvInsert.hParent = TVI_ROOT; // 指定父句柄
tvInsert.item = tvItem; // 指定TV_ITEM结构对象
tvInsert.hInsertAfter = TVI_LAST; // 项目插入方式
// 创建根项目,当前项目句柄保存于hItem0中
HTREEITEM hItem0 = m_ctrTreeCtrl.InsertItem(&tvInsert);
……
// 在根项目下继续创建第二层项目
tvItem.mask = TVIF_TEXT;
tvItem.pszText = "SubItem0";
tvInsert.hParent = hItem0;
tvInsert.item = tvItem;
tvInsert.hInsertAfter = TVI_LAST;
HTREEITEM hItem3 = m_ctrTreeCtrl.InsertItem(&tvInsert);

  作为同用户的接口,树形控件将在不同的动作下发出各种通知消息,可以在控件窗口的消息映射中添加ON_NOTIFY_REFLECT宏或是在控件所在父窗口的消息映射中添加ON_NOTIFY宏来为每一个通知消息指定处理函数。

  树形控件中的任何一个项目均可以拥有一个子项目列表,此列表可以随时处于展开或缩起状态。当处于展开状态时,对应的子项目将以缩进方式显示在父项目下;当处于缩起状态时,子项目将不显示。当用户在双击父项目时,相应的子项目列表将自动在展开与缩起状态切换。在子项目列表状态发生改变时和状态改变完成后树形控件将分别发出TVN_ITEMEXPANDING和 TVN_ITEMEXPANDED通知消息。关于其它的通知消息及其具体含义可参见下表:

通知消息 消息说明
TVN_BEGINDRAG 开始拖拽操作
TVN_BEGINLABELEDIT 开始编辑标签
TVN_BEGINRDRAG 开始鼠标右键拖拽操作
TVN_DELETEITEM 删除一个指定的项目
TVN_ENDLABELEDIT 结束编辑标签
TVN_GETDISPINFO 获取一个项目的显示信息
TVN_ITEMEXPANDED 子项目列表被展开或收起
TVN_ITEMEXPANDING 子项目列表正将展开或收起
TVN_KEYDOWN 键盘事件
TVN_SELCHANGED 项目的选择发生改变
TVN_SELCHANGING 项目的选择将要发生改变
TVN_SETDISPINFO 通知更新一个项目的信息

  小结

  本文对VC++编程中经常用到的按钮控件、编辑控件、树形控件、列表控件和组合框控件等Windows预定义的标准控件的动态创建、风格设置、通知消息的响应等内容作了具体的讲述,通过本文前述内容,读者可以掌握这些常用控件的一般使用方法。对于本文未提到的其他Windows标准控件,读者也可通过类似的方法予以实现。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章