86上位机VC MFC树状视图控件背景图片任意设置
86上位机VC MFC树状视图控件背景图片任意设置
功能展示
树状视图任意设置背景会让程序更加漂亮,我们当前例程实现树状视图控件CTReeCtrl背景图片的任意设置及背景图片的拉伸效果切换,另外还可以设置为渐变模式或使用默认背景效果,例程的效果如图 要点提示 我们当前例程以自绘方式完成自定义的可以设置背景图片的树状视图类class CBmpTree;在使用时,可根据自己需要,设置些类的属性,如我们当前例程m_Tree.SetBkBitmap( IDB_BK );//设置背景图片m_Tree.SetItemIcon(IDR_MAINFRAME);//设置子项图标 m_Tree.SetNodeOpenCloseBmp(IDB_TREE_OPENED,IDB_TREE_CLOSED);//节点开关位图 或什么都不设置,跟VC自带的CTreeCtrl类一样使用 ;
实现功能 1.新建基于对话框的应用程序 2.复制例程根目录下两文件BmpTree.cpp,BmpTree.h到自己工程根目录,并在工程中添加这两文件;添加树状视图控件且关联变量CBmpTree m_Tree;
3.初始化此变量,设置些属性,添加些文本 - //树状视图的属性设置
- m_Tree.SetBkBitmap( IDB_BK );//设置背景图片
- // m_Tree.SetBkMode( CBmpTree::BK_MODE_GRADIENT );//不用背景图设为其他模式
- m_Tree.SetItemIcon(IDR_MAINFRAME);//设置子项图标
- m_Tree.SetNodeOpenCloseBmp(IDB_TREE_OPENED,IDB_TREE_CLOSED);//节点开关位图
- //添加些文本到树状视图里
- TV_INSERTSTRUCT TreeItem;
- TV_INSERTSTRUCT curTreeItem;
- HTREEITEM hParent;
- TreeItem.hParent = NULL;
- TreeItem.hInsertAfter = TVI_LAST ;
- TreeItem.itemex.mask = TVIF_TEXT | TVIF_CHILDREN;
- TreeItem.itemex.pszText = "主节点一";
- TreeItem.itemex.cChildren = 1;
- TreeItem.hParent = m_Tree.InsertItem(&TreeItem);
- curTreeItem.hParent = TreeItem.hParent;
- curTreeItem.itemex.mask = TVIF_TEXT;
- curTreeItem.itemex.cChildren = 0;
- curTreeItem.hInsertAfter = TVI_FIRST;
- curTreeItem.itemex.pszText = "子项一";
- m_Tree.InsertItem( &curTreeItem );
- curTreeItem.itemex.pszText = "子项二";
- m_Tree.InsertItem( &curTreeItem );
复制代码- curTreeItem.itemex.pszText = "次节点一";
- curTreeItem.itemex.cChildren = 1;
- hParent = m_Tree.InsertItem( &curTreeItem );
- curTreeItem.itemex.cChildren = 0;
- curTreeItem.hParent = hParent;
- curTreeItem.itemex.pszText = "子项文本过长怎么办?...........全部文本可见!";
- m_Tree.InsertItem( &curTreeItem );
- m_Tree.Expand( TreeItem.hParent, TVE_EXPAND );
- m_Tree.Expand( hParent, TVE_EXPAND );
- TreeItem.hParent = NULL;
- TreeItem.hInsertAfter = TVI_LAST;
- TreeItem.itemex.mask = TVIF_TEXT | TVIF_CHILDREN;
- TreeItem.itemex.pszText = "主节点二";
- TreeItem.itemex.cChildren = 1;
- TreeItem.hParent = m_Tree.InsertItem(&TreeItem);
- curTreeItem.hParent = TreeItem.hParent;
- curTreeItem.itemex.pszText = "子项一";
- m_Tree.InsertItem( &curTreeItem );
- m_Tree.Expand( TreeItem.hParent, TVE_EXPAND );
复制代码就可以完成背景图片的设置了,记得添加背景位图资源;其他额外功能,可参数例程中几个按钮中的代码
我们来演示下功能实现的整个过程
|