ImageVerifierCode 换一换
格式:DOCX , 页数:46 ,大小:45.16KB ,
资源ID:1245000      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1245000.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VB SendMessage 函数参数详解.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VB SendMessage 函数参数详解.docx

1、VB SendMessage 函数参数详解VB SendMessage 函数参数详解SendMessage函数原形Declare Function SendMessage Lib user32 Alias SendMessageA (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long四个参数的含义和说明如下:1.hWnd:对象的句柄。希望将消息传送给哪个对象,就把该对象的句柄作为实参传送,在 VB 中可以简单地用“”获得某个对象的句柄,如 Text1.hWnd和 Form1.h

2、Wnd分别可以得到 Text1和Form1的句柄。它是一个长整型数。Windows给每个控件一个编号,这个编号就称为窗口句柄。有了这个句柄,我们就可告诉 Windows 我们要控制哪个控件,所以这个句柄在 API 调用中至关重要。VB 的大多数控件都包括hwnd属性,如下拉框、TreeView等,窗体也有这个属性。但也有一些控件没有这个属性,如标签控件。没有这个属性就无法利用Windows API函数,但可以节省系统资源。2.wMsg:被发送的消息。根据具体需求和不同的对象,将不同的消息作为实参传送,以产生预期的动作。使SendMessage 传递消息,大多是为了完成以下几个工作:设置控件的一

3、些选项,象我们要使用的CB_SETDROPPEDWIDTH的就属于这种情况。尽管VB的每个控件都提供了许多属性,但仍然有许多控件的选项没有包括在其中。而这些选项中的大多数都可以利用该函数进行设置获得控件的一些设置。同上一种情况相反,有时我们需要获得控件的一些设置,相当于读取属性。例如,如果想知道一个下拉框的下拉部分的宽度是多少,就可以向控件发送CB_GETDROPPEDWIDTH消息。对于这种情况,SendMessage函数的返回值就是结果。执行一定的操作。例如,我们要在下拉框中寻找是否有“ABC”这个字符串,当然,我们可以编写一个循环,逐条比较看是否存在这样的字符串。如果使用API,我们只需

4、要向下拉框发送CB_FINDSTRING消息,这条消息就会自动进行查找工作并返回结果。模拟用户操作。我们有时希望模拟用户的操作,比如关闭其他应用程序的窗口。其实只要我们能知道那个窗口的句柄,我们就可以发送WM_CLOSE消息给那个窗口,窗口接受到这条消息就会关闭,如同用户关闭窗口一样3.wParam、4.lParam:附加的消息信息。这两个是可选的参数,用来提供关于wMsg消息更多的信息,不同的wMsg可能使用这两个参数中的0、1或2个,如果不需要哪个附加参数,则将实参赋为NULL(在VB中赋为0)。lParam定义为Any类型。指定 Any类型可禁止VB进行类型检查,从而允许将任意数据类型传

5、递给该过程。由于每条消息对参数的类型和传递方式的要求都不同:有的可能要求为Long型,有的可能要求为自定义类型;大多数要求按传值方式传递,但也有一些要求按传地址方式。为了满足各种要求,我们将这个参数定义为Any类型。比如,我们要传递一个Long型变量lData。如果消息要求传地址方式传递,可以使用:SendMessage , lData而如果要求传值方式传递,则使用SendMessage , ByVal lData如果传递常数,我们则需要使用类型后缀来指定常数的类型,比如0&,表示Long型的常数0,如SendMessage , ByVal 0&我们也可以使用类型转换函数CLng将常数指定为L

6、ong型,如CLng(0)。程序中,有时定义 lParam As Any,有时定义 ByVal lParam As String。这是为什么呢对于SendMessage函数,lParam的使用是很灵活的,在一般情况下,lParam是一个指针,它指向的数据类型有三种:长整形、自定义数据结构类型、字符串类型。对于前两种类型,需要将 lParam定义为 lParam As Any,从而将 lParam 数据的指针传递到 SendMessage 函数。对于字符串类型,则需要定义 Byval lParam As String,因为字符串类型数据不同,只有定义 ByVal,得到的才是字符串的指针,如果没有

7、ByVal,得到的将是指向字符串指针的指针。另外对于少数的消息来说,SendMessage 函数需要的只是lParam 本身的值,这时就需要将 lParam定义为 Byval lParam As Long,或者在程序调用时在 lParam之前加 ByVal当用户在编辑控件上进行各种操作时,其父窗口将收到 WM_COMMAND 通知消息,lParam带控件句柄(hWnd),同时 wParam 的低16位带控件的 ID,高16位带有如下表的消息代码:常用编辑控件消息:EC_LEFTMARGIN(&H1) EC_USEFONTINF 设置左边距时使用EC_RIGHTMARGIN EC_USEFONT

8、INF 设置右边距时使用EC_USEFONTINF,O,边距设置编辑控件的左、右边距,当wParam含EC_LEFTMARGIN时在lParam的低16位指定左边距点数,当wParam含 EC_RIGHTMARGIN时在lParam的高16位指定右边距点数。当指定wParam为EC_USEFONTINFO时,则用当前字体的字符 A的宽度指定右边距和字符C的宽度指定左边距lParam被忽略。EM_CHARFROMPOS(&HD7=215),0, 取得编辑控件中指定位置的字符相对于文本头部的偏移量。使用本操作应先在第4个参数的高16位指定行号,低16位指定列号(或一个POINTAPI结构),行列是

9、按编辑控件的客户区左上角为原点(0,0)计算的。如果指定的位置超出控件客户区则返回-1EM_CANUNDO(&HC6=198),0,0 决定前一次编辑操作是否能够撤消:检测控件撤消缓冲区是否为空,通常控件把最后一次在控件的编辑操作保存在一个撤消缓冲区,如果缓冲区非空则返回TRUE 表示上次操作可以撤消,否则返回FALSE,应用程序可以利用该返回值来禁止或允许菜单或工具条的撤消项。EM_EMPTYUNDOBUFFER(&HCD=205 ),0,0 清除控件的撤消缓冲区,使其不能撤消前一次编辑操作EM_FMTLINES(&HC8=200) 决定是否在取回的文本宇串中包含软回车字符EM_GETFIR

10、STVISIBLEINE(&HCE=206),0,0 获得文本控件中处于可见位置的最顶部的文本所在的行号EM_GETLINE(&HC4=196 ),行号,ByVal 变量获取编辑控件某一行的内容,变量须预先赋空格EM_GETLINECOUNT(&HBA=186,0,0 获取编辑控件的总行数EM_GETMODIFY(&HB8=184),0,0判断编辑控件的内容是否已发生变化,返回TRUE则控件文本已被修改,返回FALSE则未变。EM_GETPASSWORDCHAR( ),0,0 获取编辑控件的密码字符,返回NULL表示没有字符EM_GETRECT(&HB2=178),0,结构 获取编辑控件的格式

11、化矩形EM_GETTHUMB(&HBE=190),0,0 取得多行文本编辑控件的滚动框的当前位置(注意:是象素值)EM_GETSEL(&HB0=176),0,变量获取光标位置(以字节数表示),或:(缓冲区起点,缓冲区终点)取得编辑控件中选定内容的范围,返回值中低16位为起点,高16位为终点EM_GETHANDLE(&HBD=189),0,0 取得文本缓冲区EM_GETWORDBREAKPROC(&HD1=209),0,0 取得整字换行回调函数EditWordBreakProc指针EM_GETLIMITTEXT(WM_USER+37=1061),0,0 获取一个编辑控件中文本的最大长度EM_GE

12、TMARGINS( ),0,0 获取编辑控件的左、右边距,返回值低16位为左边距,高16位为右边距(不得用于NT351)EM_LIMITTEXT(&HC5=197),最大值,0 设置编辑控件中的文本长度EM_SCROLLCARET(&HB7=183),0,0 把可见范围移至光标处EM_LINEFROMCHAR(&HC9=201),偏移值,0 获取指定位置(或:-1,0 表示光标位置)所在的行号EM_LINEINDEX(&HBB=187),行号,0 获取指定行(或:-1,0 表示光标所在行)首字符在文本中的位置(以字节数表示)EM_LINELENGTH(&hC1=193),偏移值,0 获取指定位

13、置所在行(或:-1,0 表示光标所在行)的文本长度(以字节数表示)EM_POSFROMCHARPOINT,结构地址,偏移值 取得指定字符位置的行列号,偏移值是字符相对于文本头部的偏移。EM_LINESCROLL(&HB6=182),列数,行数指定行数的文本水平滚动,每次滚动N列EM_EXGETSEL (&H434 = 1076)EM_EXSETSEL(&H437=1079),0,结构 RichEdit控件设置文本选定范围,参阅 EM_SETSEL 消息,结构是指 CHARRANGE 结构EM_PASTESPECIAL(&H440=1088),2(1),1 RichEdit控件粘贴剪贴板中的位图

14、(或文本)EM_FINDTEXT(&H738=1080) RichEdit控件正文搜索操作EM_FINDTEXTEX(&H44F=1103) 同上EM_SETTEXTEX(&H461=1121) RichEdit控件正文替换/插入操作EM_SETTARGETDEVICE, GetDC(RichText.hWnd), RichText.Width / 15)设置 RichTextBox 自动换行,后续代码是:RichText.RightMargin = iif(RichText.RightMargin = 0,1,0)EM_SETTARGETDEVICE, 0, 1 设置 RichTextBox

15、 不自动换行EM_POSFROMCHAR(&HD6或&H426) 判断指定字符在编辑控件的位置(用于NT351)EM_SCROLL(&HB5=181),*,0 文本垂直滚动。第三个参数*控制滚动方向:SB_LINEDOWN(1)向下滚动一行,SB_LINEUP(0)向上滚动一行,SB_PAGEDOWN (3)向下滚动一页,SB_PAGEUP(2)向上滚动一页。EM_REPLACESEL(&HC2=194),1(0),字符串用指定字符串替换编辑控件中的当前选定内容,如果第三个参数wParam为1,则本次操作允许撤消,0禁止撤消。字符串可用传值方式,也可用传址方式(例:SendMessage Te

16、xt1.hwnd, EM_REPLACESEL, 0, Text2.Text 这是传值方式)EM_SETSEL(&HB1=177),起点,终点设置编辑控件中文本选定内容范围(或设置光标位置),该范围被反相显示,用于为复制、替换、粘贴、剪切、删除等编辑功能指定范围,光标将被移至指定的终点后面。还可使用指定相同起点和终点来移动光标而不是选定范围。当指定的起点等于0和终点等于-1时,文本全部被选中,此法常用在清空编辑控件。当指定的起点等于-2和终点等于-1时,全文均不选,光标移至文本未端,此法常用在文本未端追加内容。注意:当控件没有输入焦点时,本操作将会失败,一般在执行本操作前都应调用SetFocus先取得输入焦点。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1