社区
界面
帖子详情
CTreeCtrl item上如何添加其他控件
xmokay
2008-11-03 04:47:10
我想在CTreeCtrl的item上添加控件,比如CEdit、位图等等。我应该如何操作呢?
还有,如果添加了,如何响应这些新添加的控件的消息?
我是个新手,希望大家能详细点回答。先谢谢大家了。
...全文
57
5
打赏
收藏
CTreeCtrl item上如何添加其他控件
我想在CTreeCtrl的item上添加控件,比如CEdit、位图等等。我应该如何操作呢? 还有,如果添加了,如何响应这些新添加的控件的消息? 我是个新手,希望大家能详细点回答。先谢谢大家了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jarraytan
2008-11-04
打赏
举报
回复
满足你的要求吧。 代码:
http://www.codeproject.com/KB/tree/waitingtreectrl.aspx
carlolin
2008-11-04
打赏
举报
回复
有点小难啊,找个例子吧去CodeProject!
dandycheung
2008-11-04
打赏
举报
回复
不是没人知道,是太复杂了,说不清楚。
xmokay
2008-11-04
打赏
举报
回复
自己顶一下.没有人知道么.高手帮帮我
Kudeet
2008-11-03
打赏
举报
回复
http://www.codeproject.com/KB/tree/
C
Tree
Ctrl
右击弹出菜单
C
Tree
Ctrl
右击弹出菜单,可以向属性
控件
中
添加
item
,删除同样的道理,可以保存当前树形结构到配置文件中,可以从配置文件中加载当前目录
心希盼 MFC 树
控件
item
完美拖动
解决了MFC中树
控件
item
的拖动的问题 详细说明在 "心希盼
item
拖动.doc"文件中
用vc2005 MFC实现的根据
Tree
Ctrl
动态生成Tab
Ctrl
控件
TAB页的例子代码
例子中基于MFC单文档视图,实现了点击
Tree
Ctrl
的不同子
ITEM
动态生成Tab
Ctrl
控件
相应TAB页功能,如果一些TAB页已经生成,点击相应的
Tree
Ctrl
子
ITEM
则切换到已生成的TAB页上,支持TAB页右键菜单关闭,左键双击关闭功能。
VC类似QQ游戏大厅导航的树型
控件
第一步:新建一个基于对话框的MFC工程,拖动一棵标准树型
控件
放于界面之上。
添加
一个新类C
Tree
Ctrl
BT派生自C
Tree
Ctrl
。 第二步:为该类
添加
一些消息响应以及虚函数。其详细作用如下: void PreSubclassWindow(); //用于
添加
初始化
控件
的相关信息 WM_SIZE //
控件
区域发生变化时候的处理 WM_PAINT //绘制
控件
WM_MOUSEMOVE //主要获取鼠标所在位置的单元项 第三步:
Tree
Ctrl
BT.h中首先声明一个结构用于保存单元项的相关信息,并把所有项的信息放入一个map。实现代码如下: typedef struct tag
Item
Msg { H
TREE
ITEM
h
Item
; //项的句柄 CBitmap
Item
Bitmap; //项的位图 COLORREF crTransparent; //透明颜色 tag
Item
Msg() { h
Item
= NULL; crTransparent = RGB(255,255,255); } ~tag
Item
Msg() { if (
Item
Bitmap.GetSafeHandle() ) {
Item
Bitmap.DeleteObject(); } } }
ITEM
_MSG; typedef map
ITEM
MSG_MAP; 第四步:计算
控件
的客户区域大小,以及滚动条滚动的偏移量。详细过程参考源代码 Calculate函数。 第五步:
添加
接口函数以及成员变量。如下: (注意:TransparentBlt函数,需要包含msimg32.dll) //设置背景位图BOOL SetBackgroudBitmap( UINT nID );BOOL SetBackgroudBitmap(LPCTSTR lpszRecourceName);//设置某一项位图void Set
Item
Bitmap(H
TREE
ITEM
h
Item
, UINT nIdBitmap);void Set
Item
Bitmap(H
TREE
ITEM
h
Item
, LPCTSTR lpszBitmap);//设置展开收缩的图表void SetExpandBitmap(UINT nIdExpand, UINT nIdCollapse, COLORREF crTransparent = RGB(255,255,255));//插入新的项目H
TREE
ITEM
Insert
Item
Ex(H
TREE
ITEM
hParent, LPCTSTR lpsz
Item
, UINT nIdBitmap = 0, OLORREF crTransparent = RGB(255,255,255));H
TREE
ITEM
Insert
Item
Ex(H
TREE
ITEM
hParent, LPCTSTR lpsz
Item
, LPCTSTR lpszBitmap, COLORREF crTransparent = RGB(255,255,255));//开启横线void EnableRowLine( BOOL bEnable = TRUE );//是否开启横线BOOL IsEnableRowLine();//开启根节点背景void EnableRootBk( BOOL bEnable = TRUE );//是否开启根节点背景BOOL IsEnableRootBk();//获取某一项信息
ITEM
_MSG* Get
Item
Msg(H
TREE
ITEM
h
Item
); 第六步:绘制
控件
。需要的绘制函数如下: //绘制渐变色矩形区域void GradientFillRect( CDC *pDC, CRect &rect, COLORREF col_from, COLORREF col_to, bool vert_grad ); //绘制
控件
背景void DrawBackgroudBitmap(CDC* pDc); //绘制单元项void Draw
Item
( CDC* pDC ); //绘制单元项下部横线void DrawRowLine(CPoint ptBegin, CPoint ptEnd, CDC *pDc = NULL); //绘制展开收缩按钮void DrawExpand(CRect rect, int state,
VC++树状图
控件
的使用
摘要: 树视图
控件
表示有层次关系的事物或能够进行分类划分的对象。树型视图
控件
中每个项目(
Item
,又称作节点)由项目名称和一个可选择的图标组成,其中的项目分为父项目和子项目。
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章