程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 用SendMessage滾動文本框控件的內容

用SendMessage滾動文本框控件的內容

編輯:VB綜合教程

  在Visual Basic中,可以通過程序使文本框控件中的內容進行滾 動,而不用等待用戶單擊滾動條控件。通過使用Windows API的SendMe ssage函數,可以將一個或多個滾動消息發送給系統,由此來實現上述 功能。

  在文本框控件中滾動

  在下面的樣例程序中,連接到Left命令按鈕上的代碼將文本框中 的內容向左移動一個字符的位置。當用戶單擊了文本框控件上的水平 滾動條時,該消息被發送到窗口。然而,在這個程序中,是在用戶單擊 命令按鈕時發送該消息。

  要控制滾動行為的方向,必須告訴SendMessage函數將一個WM_HSC ROLL消息發送到文本框控件中,並在wParam參數中指定方向參數。下 面是可以在wParam參數中指定的有效設置:

  SB_LEFT

  往左邊移動較多部分

  SB_RIGHT

  往右邊移動較多部分

  SB_LINELEFT

  往左邊移動一個單元

  SB_LINERIGHT 往右邊移動一個單元

  可見,要將文本框中的文本向左移動一個字符,可以將wParam參數 設置為SB_LINELEF T;要將文本框中的內容向右移動一個字符,則將wP aram參數設置為SB_LINERIGHT,等等。

  樣例程序

  該程序顯示了如何使用SendMessage函數來滾動文本框控件中的 內容。

  1.在Visual Basic中開始一個新的工程,采用缺省的方法建立For m1。

  2.將如下常量和聲明語句添加到Form1的通用聲明部分中(注意該 聲明語句需要書寫在一行內):

  Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"(B yVal hwnd As Long, ByVal wMsg As Long, ByVa l wParam As Integer, ByVal lParam 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鍵來執行該程序。在文本框控件中鍵入一些文本。 單擊左命令按鈕,文本將被往左滾動一個字符。單擊右命令按 鈕,文本將被往右滾動一個字符的位置。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved