快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记娱h88:用SendMessage滚动文本框控件的内容



在Visual Basic中,可以经由过程法度榜样使文本框控件中的内容进行滚 动,而不用等待用户单击滚动条控件。经由过程应用Windows API的SendMe ssage函数,可以将一个或多个滚动消息发送给系统,由此来实现上述 功能。

在文本框控件中滚动

鄙人面的样例法度榜样中,连接到Left敕令按钮上的代码将文本框中 的内容向左移动一个字符的位置。当用户单击了文本框控件上的水平 滚动条时,该消息被发送到窗口。然而,在这个法度榜样中,是在用户单击 敕令按钮时发送该消息。

要节制滚动行径的偏向,必须奉告SendMessage函数将一个WM_HS和记娱h88C ROLL消息发送到文本框控件中,并在wParam参数中指定偏向参数。下 面是可以在wParam参数中指定的有效设置:

SB_LEFT

往左边移动较多部分

SB_RIGHT

往右边移动较多部分

SB_LINELEFT

往左边移动一个单元

SB_LINERIGHT 往右边移动一个单元

可见,要将文本框中的文本向左移动一个字符,可以将wParam参数 设置为SB_和记娱h88LINELEF T;要将文本框中的内容向右移动一个字符,则将wP aram参数设置为SB_LINERIGHT,等等。

样例法度榜样

该法度榜样显示了若何应用SendMessage函数来滚动文本框控件中的 内容。

1.在Visual Basic中开始一个新的工程,采纳缺省的措施建立For m1。

2.将如下常量和声明语句添加到Form1的通用声明部分中(留意该 声明语句必要书写在一行内和记娱h88):

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"(B yVal hwnd As Long,和记娱h88 ByVal wMsg As Long, ByVa l wParam As Integer, ByVal lPara和记娱h88m As Long) As Long

Const SB_LINERIGHT = 1

Const SB_LINELEFT = 0

Const WM_HSCROLL = &H114

3.在Form1上添加一个文本框控件,采纳缺省的措施建立Text1。 将其MultiLine属性设置为True,ScroolBars属性设置为3-Both。

4.在Form1上添加一个敕令按钮控件,采纳缺省的措施建立Comman d1。

将其Caption属性设置为"左"。

5.将如下代码添加到Command1的单击事故中:

Private Sub Command1_Click()

Dim X As Long

X = SendMessage(Text1.hwnd, WM_HSCROLL, SB_LINELEFT, ByV al 0&)

End Sub

6.在Form1上添加第二个敕令按钮控件,采纳缺省的措施建立Comm and2,将其Caption 属性设置为"右"。 r>   7.将如下代码添加到Command2的单击事故中:

Private Sub Command2_Click()

Dim X As Long

X = SendMessage(Text1.hwnd, WM_HSCROLL, SB_LINERIGHT, By Val 0&)

End Sub

按下F5键来履行该法度榜样。在文本框控件中键入一些文本。 单击左敕令按钮,文本将被往左滚动一个字符。单击右敕令按 钮,文本将被往右滚动一个字符的位置。

您可能还会对下面的文章感兴趣: