P>Êó±êÊÇWINDOWS»·¾³Ï²»¿ÉȱÉÙµÄÊäÈ빤¾ß,ÔÚÓ¦ÓóÌÐòÖÐÁé»îµØÊ¹ÓÃÊó±ê¹¦ÄÜ,»á¸ø¹¤×÷´øÀ´¼«´óµÄ·½±ã.VISUAL
FOXPRO6.0ºÍVISUAL BASIC6.0ÊÇMICROSOFT VISUAL STUDIO98ÃæÏò¶ÔÏóµÄ¿ÉÊÓ»¯¿ª·¢»·¾³,Ëü¹¦Äܷdz£Ç¿´ó,¶øÇÒÉè¼Æ³ÌÐò¼òµ¥ÊµÓÃ.ËüÌṩÁËÓëÊó±ê²Ù×÷ÓйصÄʼþºÍ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Ó¦ÓÃʵÀý:
ʵÀýÒ»£ºÀûÓÃÊó±êʼþÔÚ´°ÌåÉϻԲ¡£
µ±Êó±ê×ó¼ü°´ÏÂʱ¿ÉÒÔ×÷ͼ£¬¶øµ±Êó±ê×ó¼üÊÍ·Åʱ£¬ÔòÎÞ·¨×÷ͼ£»¶øµ±Êó±êÒÆ¶¯Ê±£¬
Ôò»³öͼÀ´¡£°ÑÊó±ê×ó¼ü°´ÏÂÓë·ñ×÷Ϊ×÷ͼµÄ¿ª¹Ø£¬Êó±êÒÆ¶¯¾ÍÁ¬Ðø»Í¼£¬±¾ÀýÊÇ
Á¬Ðø»³öÔ²À´¡£Ð§¹ûÈçͼ1¡£
ͼ1
ÔÚ´°Ìå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
if (nXCoord$#@60;0.or. nXCoord$#@62;thisform.command1.width) .or.
(nYCoord$#@60;0 .or. nYCoord$#@62;thisform.command1.height)
THISFORM.COMMAND1.PICTURE="C:\B.BMP"
endi
endi
Èý.VISUAL BASICÓ¦ÓÃʵÀý:
ʵÀýÒ»:¸øÓ¦ÓóÌÐòµÄÃüÁî°´Å¥¼ÓÉÏÌáʾÐÐ.
ʵÏÖЧ¹û:ÓùýWINDOWS OFFICEÈí¼þµÄÓû§,¶¼·Ç³£ÊìϤÕâÖÖÇé¿ö,µ±Äã×Ô¼º²»
Çå³þÈí¼þÖÐËùÁгöµÄͼ±ê°´Å¥Æðʲô×÷ÓÃʱ, ¿ÉÒÔ°ÑÊó±êÒÆµ½Õâ¸ö
ͼ±ê°´Å¥ÉÏ,²»Ò»»á¶ùÔÚÕâͼ±ê°´Å¥µÄÏ·½»áÏÔʾһ¸ö¼ò¶ÌµÄÎÄ×ÖÌá
ʾÐÐ,˵Ã÷Õâ¸öͼ±ê°´Å¥µÄ×÷ÓÃ;µ±°ÑÊó±ê´ÓÕâ¸ö°´Å¥ÉÏÒÆ¿ªºó,Ìáʾ
ÐÐÁ¢¿ÌÏûʧ.
ʵÏÖ·½·¨:
(1)½¨Á¢º¬ÓÐÈçÏ¿ؼþµÄ´°Ìå:
¿Ø¼þ NAME CAPTION VISIBLE
´°Ìå BOTTON_DEMO ʵÀýÒ»:¸øÓ¦ÓóÌÐòµÄÃüÁî°´Å¥¼ÓÉÏÌáʾÐгÌÐò´°¿Ú
ÃüÁî°´Å¥ COMMAND1 TRUE
±êÇ© LABEL1 FALSE ÏÔʾͼ±ê°´Å¥×÷ÓõÄÎÄ×Ö
(2)Ë«»÷´°Ìå,½øÈë´°Ìå×°Èëʼþ´úÂë´°¿Ú:
Private Sub Form_Load ( )
COMMAND1.Picture = LoadPicture("C:\README.ICO") ×°ÈëͼƬ
End Sub
(3)µ±Êó±êÒÆµ½°´Å¥ÉÏ·½Ê±,¼¤»î±êÇ©ÏÔʾ¸Ãͼ±ê°´Å¥×÷ÓõÄÎÄ×Ö.
Ë«»÷ͼ±ê°´Å¥,½øÈëÃüÁî°´Å¥MOUSEMOVEʼþ´úÂë´°¿Ú:
Private Sub Command1_MouseMove (Button As Integer, Shift As Integer,
X As Single, Y As Single)
LABEL1.BorderStyle = 1
LABEL1.BACKCOLOR =&H0000FFFF& ÏÔʾÎÄ×ֵıêÇ©¿òµ×ɫΪ»ÆÉ«
LABEL1.Visible = True
LABEL1.CAPTION = "ÑÝ Ê¾"
End Sub
(4)µ±Êó±ê´Ó°´Å¥ÉÏÒÆ¿ªºó,ÌáʾÐÐÎÄ×ÖÁ¢¼´Ïûʧ.
Ë«»÷´°Ìå,½øÈë´°ÌåMOUSEMOVEʼþ´úÂë´°¿Ú:
Private Sub Form_MouseMove (Button As Integer, Shift As Integer,
X As Single, Y As Single)
LABEL1.Visible = False
End Sub
ʵÀý¶þ:»¥»»Êó±êµÄ×óÓÒ°´Å¥.
ʵÏÖЧ¹û:µ±ÄãµÄÊó±ê×ó¼ü»òÓÒ¼ü²»ºÃʱ,ͨ¹ýµ÷ÓÃWINDOWS APIµÄSwapMouseButton()
º¯Êý,ʵÏÖÊó±êµÄ×óÓÒ¼ü»¥»».
ʵÏÖ·½·¨:
(1)½¨Á¢º¬ÓÐÈçÏ¿ؼþµÄ´°Ìå:
|
¿Ø¼þ
|
NAME
|
CAPTION
|
| ´°Ìå |
SWAP_BUTT
|
ʵÀý¶þ:Êó±êµÄ×óÓÒ°´Å¥»¥»» ³ÌÐò´°¿Ú
|
| ÃüÁî°´Å¥ |
COMMAND1
|
Êó±êµÄ×óÓÒ¼ü»¥»» |
| ÃüÁî°´Å¥ |
COMMAND2
|
»Ö¸´Ô״̬ |
| ÃüÁî°´Å¥ |
COMMAND3
|
Í˳ö |
| ÃüÁî°´Å¥ |
COMMAND4
|
Çå³ý±êÖ¾ |
| ±êÇ© |
LABEL1
|
°´ÏÂ×ó°´Å¥:( )
|
| ±êÇ© |
LABEL2
|
°´ÏÂÓÒ°´Å¥:( )
|
| ±êÇ© |
LABEL3
|
¿Õ ÏÔʾ°´Ï±êÖ¾
|
| ±êÇ© |
LABEL4
|
¿Õ |
(2)ÔÚÄ¿±êÎļþÁбí(OBJECT)ÖÐÑ¡ÔñGENERAL,ÔÚ¹ý³ÌÁбí(PROC)ÖÐÑ¡ÔñDECLARATIONS
(ÉùÃ÷),ϵͳ½øÈë´°Ìå¼¶´úÂëµÄ¶¨Òå´°¿ÚÖÐ.ÊäÈëÈç϶¨Òå:
Private Declare Function SwapMouseButton Lib "USER32" Alias "SwapMouseButtonA"
(ByVal BSWAP As Integer) As Integer
(3)Ë«»÷´°Ìå,½øÈëMOUSEUPʼþ´úÂë´°¿Ú:
Private Sub Form_MouseUp (BUTTON As Integer, Shift As Integer,
X As Single, Y As Single)
If BUTTON And &H111 Then
LABEL3.Caption = "¡Ì"
Else
LABEL4.Caption = "¡Ì"
End If
End Sub
(4)Ë«»÷ÃüÁî°´Å¥1,½øÈëÃüÁî°´Å¥µ¥»÷ʼþ´úÂë´°¿Ú:
Private Sub Command1_Click ()
Dim SWAP_BUTT As Integer
SWAP_BUTT = SWAPMOUSEBUTTON(-1) »¥»»Êó±êµÄ×óÓÒ¼ü
End Sub
(5)Ë«»÷ÃüÁî°´Å¥2,½øÈëÃüÁî°´Å¥µ¥»÷ʼþ´úÂë´°¿Ú:
Private Sub Command2_Click ()
Dim SWAP_BUTT As Integer
SWAP_BUTT = SWAPMOUSEBUTTON(0) »Ö¸´Êó±êµÄÔ״̬
End Sub
(6)Ë«»÷ÃüÁî°´Å¥3,½øÈëÃüÁî°´Å¥µ¥»÷ʼþ´úÂë´°¿Ú:
Private Sub Command4_Click ()
LABEL3.Caption = " "
LABEL4.Caption = " "
End Sub
(7)Ë«»÷Í˳ö°´Å¥,½øÈëÃüÁî°´Å¥µ¥»÷ʼþ´úÂë´°¿Ú:
Private Sub Command3_Click ()
End
End Sub
ÒÔÉϳÌÐòÔÚWINDOWS98,VISUAL FOXPRO 6.0,VISUAL BASIC 6.0»·¾³ÏÂÔËÐÐͨ¹ý.