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_STATEstateMask成员必须设置一个状态位用于检索. 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_GetDropHilight
  • TVGN_FIRSTVISIBLE : 返回树型控件的第一个可见的项目 等同于宏TreeView_GetFirstVisible
  • TVGN_LASTVISIBLE : Version 4.71 ,返回树型控件的最后一个展开的项目 等同于宏TreeView_GetLastVisible
  • TVGN_NEXT : 返回指定项目的下一个兄弟项目 等同于宏TreeView_GetNextSibling
  • TVGN_NEXTVISIBLE : 返回指定项目的下一个可见的项目,指定的项目必须也是可见的,等同于宏TreeView_GetNextVisible
  • TVGN_PARENT : 返回指定项目的父项目 等同于宏TreeView_GetParent
  • TVGN_PREVIOUS : 返回指定项目的前一个兄弟项目 等同于宏TreeView_GetPrevSibling
  • TVGN_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 : 位于客户区的右边

来自为知笔记(Wiz)

时间: 2024-10-01 12:37:30

TreeView控制消息的相关文章

5.RabbitMQ 客户端控制消息

1.生产者发送消息,消费者结束消息并回执 2.通过channel.basicConsume向服务器发送回执,删除服务上的消息 3.//不向服务器发送回执,服务器的消息一直存在 4.//消费者拒绝接受消息,并抛弃服务器的消息 5.//消费者拒绝接受消息,不抛弃服务器的消息 6.//消费者使用basicGet取得一个消息 //basicConsume循环取得多个消息 7.//requeue,true重新进入队列 8.//取消消费者' 9.////事务控制生者者发送消息 10.//事务控制消费者接受消

.NET Core下的日志(3):如何将日志消息输出到控制台上

当我们利用LoggerFactory创建一个Logger对象并利用它来实现日志记录,这个过程会产生一个日志消息,日志消息的流向取决于注册到LoggerFactory之上的LoggerProvider.说的更加具体一点,日志消息的归宿取决于注册到LoggerFactory的LoggerProvider究竟会提供怎样的Logger.微软提供了一系列原生的LoggerProvider,我们先来认识一下将控制台作为日志输出目的地的ConsoleLoggerProvider.ConsoleLoggerPr

XSI进程间通信-----消息队列

1. 基本特点 1) 消息队列是一个由系统内核负责存储和管理,并通过消息队列标识引用的数据链表,消息队列 和有名管道fifo的区别在: 后者一次只能放一个包,而前者则可以放很多包,这样就能处理发包快,哪包慢的问题 2) 可以通过msgget函数创建一个新的消息队列, 或获取一个已有的消息队列. 通过msgsnd函数 (send)向消息队列的后端追加消息, 通过msgrcv(receive)函数从消息队列的前端提取消息. 3) 消息队列中的每个消息单元除包含消息数据外,还包含消息类型和数据长度.消

log4j(五)——如何控制不同目的地的日志输出?

一:测试环境与log4j(一)--为什么要使用log4j?一样,这里不再重述 二:老规矩,先来个栗子,然后再聊聊感受 import org.apache.log4j.*; import java.io.*; public class UseLog4j { //日志记录器 private static Logger LOGGER = LogManager.getLogger(UseLog4j.class); //程序入口--主函数 public static void main(String[]a

消息队列库——ZeroMQ

消息队列库--ZeroMQ ZeroMQ(简称ZMQ)是一个基于消息队列的多线程网络库,其对套接字类型.连接处理.帧.甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字. ZMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间. ZMQ不是单独的服务,而是一个嵌入式库,它封装了网络通信.消息队列.线程调度等功能,向上层提供简洁的API,应用程序通过加载库文件,调用API函数来实现高性能网络通信. 主线程与I/O线程: I

Linux进程间通信 -- 消息队列 msgget()、msgsend()、msgrcv()、msgctl()

下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处.有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信 -- 使用命名管道 一.什么是消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法.  每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构.我们可以通过发送消息来避免命名管道的同步和阻塞问题.但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制. Linux用宏MSGMAX和MSGMNB来限制一条

System V IPC(1)-消息队列

一.概述                                                    System V三种IPC:消息队列,信号量,共享内存.这三种IPC最先出现在AT&T System v UNIX上面,并遵循XSI标准,有时候也被称为XSI IPC. 本文先探讨消息队列: 1.消息队列允许进程以消息的形式交换数据.读写都是针对整条消息,不能读写消息的一部分,不像管道那样可以以流的形式读写任意字节. 2.消息队列除了包含数据外,还有一个整数来表示该消息的类型.读取消息

MFC消息机制

何谓消息.消息处理函数.消息映射?消息简单的说就是指通过输入设备向程序发出指令要执行某个操作.具体的某个操作是你的一系列代码.称为消息处理函数. 在SDK中消息其实非常容易理解,当窗口建立后便会有一个函数(窗口处理函数)开始执行一个消息循环,我们还可以清楚的看到消息处理的脉络.一个switch case语句就可以搞定,消息循环直到遇到WM_QUIT消息才会结束,其余的消息均被拦截后调用相应的处理函数. 但在封装了API的MFC中,消息似乎变的有些复杂了,我们看不到熟悉的switch case语句

win 消息

Windows消息机制概述 消息是指什么?     消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉.一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序.    消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息.例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标.这个