sendmessage函数巧应用

sendmessage函数巧应用

ID:13495740

大小:20.00 KB

页数:3页

时间:2018-07-22

sendmessage函数巧应用_第1页
sendmessage函数巧应用_第2页
sendmessage函数巧应用_第3页
资源描述:

《sendmessage函数巧应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、在这一期的SendMessage函数应用中,我将向大家介绍如何利用消息函数来扩展树型列表(TreeView)控件的功能相信对于树型列表控件大家十分的熟悉,典型的应用就是Windows资源管理器中的目录列表。在VB中,树型列表控件包含在MicrosoftWindowsCommonControl6.0(也可能是5.0,视你的VB或者系统版本而定)中。在WindowsAPI中,有一系列的以TVM_开头的消息值,这些消息就是扩展树型列表控件所特定的消息值,下面向大家介绍其中的一些应用。1、设置树型列表控件的背景颜色首先做如下的定义:PrivateDeclareFun

2、ctionSendMessageLib"user32"Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLongConstTV-FIRST=&H1100ConstTVM-SETBKCOLOR=TV_FIRST+29然后再作如下调用:CallSendMessage(TreeView1.hwnd,TVM-SETBKCOLOR,0,RGB(255,0,0))上面的SendMessage调用将TreeView1的背景颜色设置为红色。大家可

3、能注意到了。在上面的Sendmessage函数定义中,我们将lParam定义为ByVallParamAsLong,而不是象前面的那些范例那样定义为Any或者String类型,关于这个问题,我会在最后的一章中做介绍。2、设置树型列表控件标题行高度利用TVM_SETITEMHEIGHT消息可以设定控件的标题行的高度,该消息的定义及调用方法如下:定义:ConstTV_FIRST=&H1100ConstTVM-SETITEMHEIGHT=TV_FIRST+27PrivateDeclareFunctionSendMessageLib"user32"Alias"Send

4、MessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong调用:CallSendMessage(TreeView1.hwnd,TVM-SETITEMHEIGHT,60,0)上面的代码将TreeView1的标题行高度设置到60像素高3、为树型列表控件中不同的标题行设置不同的提示在第一期的ListBox控件介绍中,我向大家介绍了如何为列表中的每一个标题行设置不同的提示(ToolTips),在这里为要向大家介绍如何为树型列表控件中的每一个标题设置不同的提示。同List

5、Box控件不通,树型列表控件中并没有根据光标位置获得标题行索引的消息,我们需要另外想办法。在TVM类消息中有一个TVM_HITTEST消息,发送该消息可以检测控件表面上的某一点,如果该点位于一个标题上,则返回该标题的句柄。而利用TVM_GETITEM消息,则可以根据标题句柄返回该标题行的文本。所以结合利用这两个消息可以获取光标所在标题行的标题文本。具体的范例代码如下:OptionExplicitPrivateTypeTPointxAsLongyAsLongEndTypePrivateTypeTVHITTESTINFOptAsTPointflagsAsLong

6、hItemAsLongEndTypePrivateTypeTVITEMmaskAsLongHTreeItemAsLongstateAsLongstateMaskAsLongpszTextAsLongcchTextMaxAsLongiImageAsLongiSelectedImageAsLongcChildrenAsLonglParamAsLongEndTypeConstTV-FIRST=&H1100ConstTVM_HITTEST=TV-FIRST+17ConstTVM_GETITEM=TV-FIRST+12ConstTVHT-ONITEMLABEL=&H4

7、ConstTVIF-TEXT=&H1ConstGMEM-FIXED=&H0PrivateDeclareFunctionSendMessageRefLib"user32"Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLongPrivateDeclareSubCopyMemoryLib"kernel32"Alias"RtlMoveMemory"(ByValDestinationAsString,ByValSourceAsLong,ByValL

8、engthAsLong)PrivateDeclare

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。