SendMessage函数使用实例都是什么?计算机的函数是什么意思?

2023-03-03 09:36:26 来源:创视网

SendMessage函数使用实例

例1 多行TextBox中的快速处理功能在处理多行TextBox时我们经常会碰到以下几种情况:

希望了解多行TextBox中目前共有多少行文字。

想快速返回第N行的文字。

对于上面的情况,如果用VB自身的语句或函数来实现的话,要写不短的代码,而且由于要采用顺序查找的办法来完成,因此代码的执行效率也很低。如果使用SendMessage函数则可以大大减少代码量,并大幅度的提高执行效率。

用SendMessage函数完成上面两个任务的方法非常简单,每个任务只需简单地发送一条消息给多行TextBox即可,两个消息分别为:EM_GETLINECOUNT、EM_GETLINE,其它参数和返回值见附表。

下面用一个简单的实例演示这两个功能:

新建工程,在Form1上添加三个TextBox(名称分别为Text1、txtLineCount、TxtString,将Text1的Multi

Line属性置为True)、三个标签和一个命令按钮。为工程添加一个模块Moudle1,在其中写如下声明(其中

SendMessage函数的声明可以从VB的“API浏览器”中复制): 消息常量名 消息值 wParam lParam 返回值 EM_GETLINECOUNT &HBA 未用 未用 行数 EM_GETLINE &HC4 要找的行号 存结果的字节串 结果字节串的字节数

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long,lParam As Any) As Long

Public Const EM_GETLINECOUNT=&HBA

Public Const EM_GETLINE=&HC4

在Form1的代码模块中写如下代码:

Private Sub Command1_Click()

Dim str(256) As Byte

str(1)=1 '最大允许存放256个字符

'获取总行数,结果显示在文本框txtLineCount中

txtlineCount=SendMessage(Text1.hwnd,EM_GETLINECOUNT,0,0)

'获取第3行的数据放在str中,转换为字符串后显示在文本框txtString中

SendMessage Text1.hwnd,EM_GETLINE,2,str(0)

txtString= StrConv(str,vbUnicode)

End Sub

计算机的函数

计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理;所谓出口,就是指函数的函数值,在计算机求得之后,由此口带回给调用它的程序。

x 广告
x 广告

Copyright   2015-2022 财富赢家网版权所有  联系邮箱:920 891 263@qq.com

京ICP备2022016840号-48