程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 在VFP、VB應用程序中激活鼠標功能

在VFP、VB應用程序中激活鼠標功能

編輯:VB綜合教程

  鼠標是WINDOWS環境下不可缺少的輸入工具,在應用程序中靈活地使用鼠標功能,會給工作帶來極大的方便.VISUAL FOXPRO6.0和VISUAL BASIC6.0是MICROSOFT VISUAL STUDIO98面向對象的可視化開發環境,它功能非常強大,而且設計程序簡單實用.它提供了與鼠標操作有關的事件和API函數,所以編寫鼠標功能程序就變得非常簡單,只需在程序中調用這些事件和API函數即可.

  一.與鼠標有關的事件和WINDOWS API函數:

  1.MOUSEDOWN 按下鼠標事件.

  當用戶按下鼠標上的任一按鈕時,就會引發該事件.

  調用格式:

  Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)

  ①BUTTON參數是用來指示鼠標按鈕的狀態.它用二進制來表示.參數值含義如下:

  001:左按鈕按下. 010:右按鈕按下.

  011:左右按鈕都按下. 000:都沒按下.

  100:中間按鈕按下. 111:三個按鈕都按下.

  ②SHIFT參數用來指示SHIFT,CTRL和ALT三個鍵的狀態.參數值含義如下:

  001:SHIFT按下. 010:CTRL按下.

  110:CTRL和ALT按下. 011:SHIFT和CTRL按下.

  100:ALT按下. 101:SHIFT和ALT按下.

  111:SHIFT,CTRL和ALT都按下.

  ③參數X和Y指示鼠標在對象上按下時的位置.

  2.MOUSEUP 釋放鼠標事件.

  當用戶松開鼠標按鈕時,就會引發該事件.

  調用格式:(參數含義與MOUSEDOWN過程相同.)

  Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)

  3.MOUSEMOVE 移動鼠標事件.

  當用戶將鼠標移到新位置時,就會引發該事件.

  調用格式:(參數含義與MOUSEDOWN過程相同.)

  Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)

  4.WINDOWS API的SwapMouseButton()函數對換鼠標的左右鍵.

  語法格式:

  Private Declare Function SwapMouseButton Lib "USER32" Alias "SwapMouseButtonA" (ByVal BSWAP As Integer) As Integer

  參數BSWAP含義:如為TRUE,則左按鈕產生右按鈕的鼠標消息,右按鈕產生左按

  鈕的鼠標消息.如為FALSE,則正常解釋鼠標按鈕的輸入.

  返回值含義:如為TRUE,說明鼠標的左右按鈕功能已經對調.如為FLASE,說明鼠

  標按鈕功能恢復原狀態.

──────────? ───────────────────────────         

  二.VISUAL FOXPRO應用實例:

實例一:利用鼠標事件在窗體上畫圓。

  當鼠標左鍵按下時可以作圖,而當鼠標左鍵釋放時,則無法作圖;而當鼠標移動時,

  則畫出圖來。把鼠標左鍵按下與否作為作圖的開關,鼠標移動就連續畫圖,本例是

  連續畫出圓來。

  在窗體FORM1建立如下事件:

  Form1LPARAMETERS nButton, nShift, nXCoord, nYCoord

  Form1.Init事件,建立一個全局變量mark,用於是否畫圖的開關變量,

  當mark為真時,可以作圖,否則不能作圖。

  public mark

  thisform.scalemode=3

  thisform.drawwidth=2

  Form1.MouseDown事件,將mark設置為真,表示可以畫圖。

  LPARAMETERS nButton, nShift, nXCoord, nYCoord

  mark=.t.

  Form1.MouseUp事件,將mark設置為假,表示不能畫圖。

  LPARAMETERS nButton, nShift, nXCoord, nYCoord

  mark=.f.

  Form1.MouseMove事件,移動鼠標連續畫圓。

  LPARAMETERS nButton, nShift, nXCoord, nYCoord

  if mark and bittest(nbutton,0)

  thisform.circle(20,nxcoord,nycoord)

  endi

實例二:利用鼠標事件切換圖標按鈕中的圖標。

  COMMAND1控件的PICTURE屬性是C:B.BMP

  Form1.load事件,定義開關變量mouse_down。

  public mouse_down

  mouse_down=0

  Form1.MouseDown事件,顯示鼠標按下時的圖標。

  LPARAMETERS nButton, nShift, nXCoord, nYCoord

  THISFORM.COMMAND1.PICTURE="C:A.BMP"

  mouse_down=1

  Form1.MouseUp 事件,顯示鼠標松開時的圖標。

  LPARAMETERS nButton, nShift, nXCoord, nYCoord

  THISFORM.COMMAND1.PICTURE="C:B.bmp"

  Form1.MouseMove事件,判別鼠標是否離開圖形按鈕,若離開,則顯示松開時的圖標。

  LPARAMETERS nButton, nShift, nXCoord, nYCoord

  if mouse_down=1

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