sendmessage函数巧应用1

sendmessage函数巧应用1

ID:12417792

大小:36.00 KB

页数:5页

时间:2018-07-17

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

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

1、SendMessage函数巧应用(一)作者:不详 来源于:中国VB网 发布时间:2005-5-21   在Windows编程中,向文本框控件、列表控件、按钮控件等是我们最常接触的控件了。但是在VB中这些控件有时无法实现我们的需要。在这时,我们只要简单的利用WindowsAPI函数就可以扩充这些控件的功能了。   顾名思义,SendMessage函数就是向窗口(这里的窗口指的是向按钮、列表框、编辑框等具有hWnd属性的控件)发送消息的函数,该函数的定义如下:DeclareFunctionSendMessageLib"user32"Alias"SendMessageA"_       (ByVa

2、lhwndAsLong,_       ByValwMsgAsLong,_       ByValwParamAsLong,_       lParamAsAny)AsLong其中hwnd指定接受消息的窗口,参数wMsg指定消息值,参数wParamlParam分别定义传递到窗口的附加参数。而在Windows系统的很多消息中,有一些不仅仅是提供一个窗口消息那么简单。它们可以控制窗口的动作和属性。下面我将分次向向大家介绍SendMessage函数在扩充基本控件功能方面的应用。一、列表(ListBox)控件   在Windows中,有一系列的以LB_开头的列表消息,这里介绍的就是利用LB消息控制的

3、ListBox的应用1、使列表中光标移动到不同的列表项上有不同的提示(ToolTip)   在列表框控件中有一个ToolTipText属性,该属性决定了当光标在列表框上移动时出现的提示文字。但是如何使得当光标在不同的列表项上移动时的提示文字也不同呢?问题的关键是要知道在光标移动时光标所在的列表项的索引,使用SendMessage函数发送LB_ITEMFROMPOINT消息就可以获得。下面是程序范例:OptionExplicitConstLB_ITEMFROMPOINT=&H1A9PrivateDeclareFunctionSendMessageLib"user32"Alias"SendMes

4、sageA"_       (ByValhwndAsLong,_       ByValwMsgAsLong,_       ByValwParamAsLong,_       lParamAsAny)AsLongPrivateSubForm_Load()   Dimi      Fori=1To200       List1.AddItemStr(i)+"Samplesinthislistis"+Str(i)   NextiEndSubPrivateSubList1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) 

5、  DimlXPointAsLong   DimlYPointAsLong   DimlIndexAsLong   IfButton=0Then '确定在移动鼠标的同时没有按下功能键或者鼠标键       '获得光标的位置,以像素为单位       lXPoint=CLng(X/Screen.TwipsPerPixelX)       lYPoint=CLng(Y/Screen.TwipsPerPixelY)       '       WithList1           '获得光标所在的标题行的索引           lIndex=SendMessage(.hwnd,LB_ITEMF

6、ROMPOINT,0,_               ByVal((lYPoint*65536)+lXPoint))           '将ListBox的Tooltip设置为该标题行的文本           If(lIndex>=0)And(lIndex<=.ListCount)Then               .ToolTipText=.List(lIndex)'Returnthetext=.list(lIndex)           Else               .ToolTipText=""           EndIf       EndWith   EndIf

7、EndSub   首先在Form1中加入一个ListBox控件,然后再将上面的代码加入到Form1的代码窗口中。运行程序,当光标在列表中移动时,可以看到根据光标所在的不同的列表项,提示文字也不相同。2、向列表中加入横向滚动条使得可以浏览长列表项   当向列表中加入的列表项超出了列表的显示范围后,列表并不会出现横向滚动条让你可以通过滚动来浏览项目的全部内容。利用LB_SETHORIZONTALEXTENT消息可

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

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

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