TreeView控制消息
控制消息的作用
通过发送消息到Treeview控件, 就能够控机Treeview控件.常用的控制有:
- 获取被点击的节点
- 获取节点的文本
- 设置节点的文本
- 获取节点的父节点
- 获取节点的子节点
TVM_GETINDENT:
wParam: 0;
lParam: 0;
功能: 等同于宏TreeView_GetIndent
TVM_SETINDENT:
wParam: indent;
lParam: 0;
功能: 设置缩进,等同于宏TreeView_SetIndent
TVM_GETBKCOLOR:
wParam= 0;
lParam= 0;
功能: 返回当前整个控件的背景色COLORREF,等同于宏TreeView_GetBkColor
TVM_SETBKCOLOR:
wParam= 0;
lParam= (lParam)(COLORREF)clrBk;
功能: 设置背景颜色,返回先前的背景色 ,等同于宏TreeView_SetBkColor
TVM_GETITEMHEIGHT:
wParam= 0;
lParam= 0;
功能: 返回一个项目的高度,等同于宏TreeView_GetItemHight
TVM_SETITEMHEIGHT:
wParam= (wParam)(SHORT)cyItem;
lParam= 0;
功能: 设置项目的高度,单位像素,为偶数,例如设置成33,自动转换成32,如果这个值小于位图的高度,则设置为位图的高度(MSDN说法,实际上不是)
TVM_GETTEXTCOLOR:
wParam= 0;
lParam= 0;
功能: 返回当前树型控件的文本颜色COLORREF
TVM_SETTEXTCOLOR:
wParam= 0;
lParam= (lParam)(COLORREF) clrText;
功能: 设置文本的颜色
TVM_INSERTITEM:
wParam= 0;
lParam= (lParam) (LPTVINSERTSTRUCT) lpis;
功能: 为树型控件增加一个项目,等同于宏TreeView_InsertItem
TVM_DELETEITEM:
lParam= (lParam) (HTREEITEM) hitem;
功能: 删除一个指定的项目,等同于宏TreeView_DeleteItem
TVM_GETIMAGELIST:
wParam= (wParam) iImage;
lParam= 0;
功能: 返回树型控件的image list(normal或者state)的句柄,等同于宏TreeView_GetImageList
TVM_SETIMAGELIST:
wParam= (wParam) iImage;
lParam= (lParam) (HIMAGELIST) himl;
功能: 设置图象列表(normal或state),等同于宏TreeView_SetImageList,如果himl为NULL,则移除原来的图象列表
TVM_GETTOOLTIPSP:
wParam= 0;
lParam= 0;
功能: 等同于宏TreeView_GetToolTips
TVM_SETTOOLTIPS:
wParam= (wParam)(HWND) hwndTooltip;
lParam= 0;
功能: 设置工具提示栏
TVM_EDITLABEL:
lParam= (lParam) (HTREEITEM) hitem;
功能: 开始指定的项目标签替换 等同于宏TreeView_EditLabel
TVM_ENDEDITLABELNOW:
wParam= (wParam) (BOOL) fCancel;
功能: 终止项目的标签编辑 等同于宏TreeView_EndEditLabelNow
TVM_CREATEDRAGIMAGE:
lParam= (lParam) (HTREEITEM) hitem;
功能: 为指定的项目创建一个拖动位图,同时为该为图创建an image list,并将该位图加入到the image list,程序使用image list的函数来在拖动项目时显示该位图,等同于宏TreeView_CreateDragImage
TVM_GETUNICODEFORMAT:
wParam= 0;
lParam= 0;
功能: 控件使用UNICODE字符返回非零,等同于宏TreeView_GetUnicodeFormat
TVM_SETUNICODEFORMAT:
wParam= (wParam)(BOOL)fUnicode;
lParam= 0;
功能: 设置控件接收UNICODE还是ANSI字符
TVM_GETSCROLLTIME:
wParam= 0;
lParam= 0;
功能: 返回树型控件的最大滚动时间/次数?等同于宏TreeView_GetScrollTime
TVM_SETSCROLLTIME:
wParam= (wParam)(UINT)uScrollTime;
lParam= 0;
功能: 设置树型控件最大滚动次数
TVM_SETINSERTMARK:
wParam= (wParam)(BOOL) fAfter;
lParam= (lParam)(HTREEITEM) htiInsert;等同于宏 TreeView_SetInsertMarkfAfter为非零,则the insertion mark放在item之后,如果为零,则放在the insertion mark之前
TVM_GETINSERTMARKCOLOR:
wParam= 0;
lParam= 0;
功能: 返回绘制the insertion mark的颜色,等同于宏TreeView_GetInsertMarkColor
TVM_SETINSERTMARKCOLOR:
wParam= 0;
lParam= (lParam)(COLORREF)clrInsertMark;
功能: 设置the insertion mark的颜色,等同于宏TreeView_SetInsertMarkColor
TVM_GETITEM:
wParam= 0;
lParam= (lParam) (LPTVITEM) pitem;
功能: 获得一个项目的属性,hItem成员标识了要接收信息的项目;mask成员指定了要接收的属性,如果mask成员==TVIF_TEXT,·pszText·成员必须设置一个buffer来接收项目的文本,cchTextMax设置成buffer的大小,如果mask成员==TVIF_STATE,stateMask成员必须设置一个状态位用于检索. On output,state成员包含the values of the specified state bits. 等同于宏TreeView_GetItem
TVM_SETITEM
wParam= 0;
lParam= (lParam) (const LPTVITEM) pitem;
功能: 设置项目的属性,等同于宏TreeView_SetItem
TVM_SORTCHILDREN:
wParam= (wParam)(BOOL) fRecurse;
lParam= (lParam)(HTREEITEM) hitem;
功能: 指定父项目的子项目进行排序
TVM_SORTCHILDRENCB:
wParam= (wParam)(BOOL) fRecurse;
lParam= (lParam) (LPTVSORTCB) psort;
功能: 指定父项目的子项目通过自定义的回调函数进行排序进行排序
TVM_GETCOUNT:
wParam= 0;
lParam= 0;
功能: 返当前整个控件的项目数,等同于宏TreeView_GetCount
TVM_GETVISIBLECOUNT:
wParam= 0;
lParam= 0;
功能: 获得可见项目的数目,等同于宏TreeView_GetVisibleCount,TVGN_ROOT返回根项目,根项目指项目列表中排第一位的项目,等同于宏TreeView_GetRoot
TVM_GETNEXTITEM:
wParam= (wParam) (UINT) flag;
lParam= (lParam) (HTREEITEM) hitem;
功能: 返回跟hitem有某种关系的item的句柄,等同于宏TreeView_GetNextItem
flag可以是下列值之一:
TVGN_CARET: 返回当前被选择的项目 等同于宏TreeView_GetSelection。TVGN_CHILD: 返回指定项目第一个子项目 等同于宏TreeView_GetChild。TVGN_DROPHILITE: 返回拖放操作的目标项目 等同于宏TreeView_GetDropHilightTVGN_FIRSTVISIBLE: 返回树型控件的第一个可见的项目 等同于宏TreeView_GetFirstVisibleTVGN_LASTVISIBLE: Version 4.71 ,返回树型控件的最后一个展开的项目 等同于宏TreeView_GetLastVisibleTVGN_NEXT: 返回指定项目的下一个兄弟项目 等同于宏TreeView_GetNextSiblingTVGN_NEXTVISIBLE: 返回指定项目的下一个可见的项目,指定的项目必须也是可见的,等同于宏TreeView_GetNextVisibleTVGN_PARENT: 返回指定项目的父项目 等同于宏TreeView_GetParentTVGN_PREVIOUS: 返回指定项目的前一个兄弟项目 等同于宏TreeView_GetPrevSiblingTVGN_PREVIOUSVISIBLE: 返回指定项目的前一个可见的项目,指定的项目必须也是可见的,等同于宏TreeView_GetPrevVisible
TVM_ENSUREVISIBLE :
lParam= (lParam) (HTREEITEM) hitem;
功能: 确保指定项目是可见的,通过展开父项目或滚动树型控件窗口,等同于宏TreeView_EnsureVisible,如果通过展开父项目使 指定项目可见,则返回0,否则返回非零。
TVM_EXPAND:
wParam= (wParam) (UINT) flag;
lParam= (lParam) (HTREEITEM) hItem;
功能: 展开或折叠指定的项目,等同于宏TreeView_Expand,
flag可以是一个或多个值的组合:
TVE_COLLAPSE : 折叠
TVE_COLLAPSERESET : 折叠并删除其子项目,必须与TVE_COLLAPSE联用
TVE_EXPAND : 展开
TVE_EXPANDPARTIAL : 部分展开,必须与TVE_EXPAND联用,Version 4.70
TVE_TOGGLE : 折叠的就展开,展开的就折叠
TVM_GETEDITCONTROL:
wParam= 0;
lParam= 0;
功能: 返回用来编辑树型控件项目的标签的single-line编辑控件的句柄,等同于宏 TreeView_GetEditControl
TVM_GETISEARCHSTRING:
wParam= 0;
lParam= (lParam) (LPSTR) lpsz;
功能: 获得搜索字符串,等同于宏 TreeView_GetISearchString
TVM_GETITEMRECT:
wParam= (wParam) (BOOL) fItemRect;
lParam= (lParam) (LPRECT) prc;
功能: 返回指定项目的矩形,fItemRect如果为TRUE,返回的仅仅是项目文本的矩形,如果为FALSE,返回的是项目所占据的整行的矩形发送时将HTREEITEM放入lpRECT中传递(强制转换),消息返回后,lpRECT储存了项目的矩形 等同于宏TreeView_GetItemRect
TVM_SELECTITEM:
wParam= (wParam) flag;
lParam= (lParam) (HTREEITEM) hitem;
功能:
TVM_HITTEST:
wParam= 0;
lParam= (lParam) (LPTVHITTESTINFO) lpht;
功能: 等同于宏 TreeView_HitTest, lpht是结构体TVHITTESTINFO的地址,消息发送时,pt成员指定了要测试的点的坐标,消息返回后, hItem成员保存了该坐标的项目的句柄,如果该坐标没有项目则为NULL,同时, flags成员保存了这次测试的结果,
flags的值可以是以下一个或多个的组合:
TVHT_ABOVE: 测试的点位于客户区上TVHT_BELOW: 位于客户区下TVHT_NOWHERE: 位于客户区内,但在最后项目之下TVHT_ONITEM: 在位图或标签上TVHT_ONITEMBUTTON: 在+ -号按钮上TVHT_ONITEMICON: 在位图上TVHT_ONITEMINDENT: In the indentation associated with an item.TVHT_ONITEMLABEL: 在标签上TVHT_ONITEMRIGHT: 在项目右边的区域内TVHT_ONITEMSTATEICON: On the state icon for a tree view item that is in a user-defined state.TVHT_TOLEFT: 位于客户区的左边TVHT_TORIGHT: 位于客户区的右边
TreeView控制消息的更多相关文章
- ListView控制消息
ListView控制消息 ListView控制消息是提供给父窗口或其他窗口通过发消息来控制ListView窗口本身. ListView控件提供给了以下消息来让外部程序控制自身: ListView_Ap ...
- EnjoyingSoft之Mule ESB开发教程系列第五篇:控制消息的流向-数据路由
目录 1. 使用场景 2. 基于消息头的路由 2.1 使用JSON提交订单的消息 2.2 使用XML提交订单的消息 2.3 使用Choice组件判断订单格式 3. 基于消息内容的路由 4. 其他控制流 ...
- 5.RabbitMQ 客户端控制消息
1.生产者发送消息,消费者结束消息并回执 2.通过channel.basicConsume向服务器发送回执,删除服务上的消息 3.//不向服务器发送回执,服务器的消息一直存在 4.//消费者拒绝接受消 ...
- openfire过滤脏话插件,控制消息是否发送
参考:http://myopenfire.com/article/getarticle/9 package com.myopenfire.plugin; import java.io.File; im ...
- 采用PopupWin控制消息推送功能
最近的项目需要,急需实现消息推送功能.接连试了很多办法,让我们用JavaScript为了实现啊,其效果是不咋好,最后,我发现了一个PopupWin这个,看着眼前的成绩不错,开始使用. 1.准备工作.先 ...
- .NET Core下的日志(3):如何将日志消息输出到控制台上
当我们利用LoggerFactory创建一个Logger对象并利用它来实现日志记录,这个过程会产生一个日志消息,日志消息的流向取决于注册到LoggerFactory之上的LoggerProvider. ...
- Linux进程间通信(七):消息队列 msgget()、msgsend()、msgrcv()、msgctl()
下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处.有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信 -- 使用命名管道 一.什么是消息队列 消息队列提 ...
- [转]Linux进程间通信——使用消息队列
点击此处阅读原文 另收藏作者ljianhui的专栏初学Linux 下面来说说如何使用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处.有关命名管道的更多内容可以参阅我的另一篇文章:Linu ...
- Windows消息机制详解
消息是指什么? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉.一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用 ...
随机推荐
- 使用JasperReport+iReport进行Web报表开发
使用JasperReport+iReport进行Web报表开发 前言 在实际工程中非常,报告是其中很重要的一部分,结果以报表的形式呈现出来.这里所提到的报表可不是简单的二维表,而是拥有复杂表头的.多维 ...
- ios中mvc的FormsAuthentication.SetAuthCookie(cookieUserName, false)失败
如果楼主使用.net开发,要注意FormsAuthentication.SetAuthCookie 方法的使用会导致ios出现该问题.因为这个方法在ios设备上是把票据加入到url中,导致url和你的 ...
- openGL剪裁区
/** * 缓冲区工具类 */public class BufferUtil { /** * 将浮点数组转换成字节缓冲区 */ public static ByteBuffer arr2ByteB ...
- Memcached快递上手之C#
Memcached快递上手之C# Memcached是开源高性能分布式缓存组件,目前已经广泛应用各类互联网领域. 具有多种语言的客户端开发包,包括:Perl/PHP/JAVA/C/Python/Rub ...
- Visual Studio 20**自动添加头部注释信息
关于Visual Studio 20**自动添加头部注释信息 作为一个万年潜水党,不关这一篇文章技术含量如何,也算是一个好的开始吧. 在日常的开发中我们经常需要为类库添加注释和版权等信息,这样 ...
- SQLSERVER误删Windows登录用户
SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法 SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇 ...
- js中的屏蔽
js屏蔽效果 /** 屏蔽F1帮助 */ window.onhelp = function(){return false;} /** *屏蔽 F5.Ctrl+N.Shift+F10.Alt ...
- Bootstrap相关优质项目推荐
Bootstrap 编码规范by @mdo Bootstrap 编码规范:编写灵活.稳定.高质量的 HTML 和 CSS 代码的规范. jQuery API 中文手册 根据最新的 jQuery 1.1 ...
- try { var mergeFilePath = string.Format("{0}mergepdf.pdf", tempDownDir); PDFPrintHelper.MergePDFFile(pdfList, mergeFi
winform 按顺序连续打印多个PDF文件 关于PDF打印的问题,前面有篇文章(点这里查看)也叙述过,今天来谈谈另外一种方法 其实方法很简单,因为需要把多个PDF文档按顺序连续打印,为此我们为什 ...
- iOS使用自定义字体的方法(内置和任意下载ttf\otf\ttc字体文件)
最近做了个有关阅读的应用,使用了自定义字体,学习了一下这方面的知识. 1.首先是最简单也普遍的做法,打包内置字符库文件: 把字体库文件添加到工程,如font1.ttf添加到工程,然后在工程plist添 ...