Re: [VB6 ] 請問滑鼠偵測的問題

看板Visual_Basic作者 (雲湛)時間11年前 (2013/12/10 11:41), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《JOUMAX (JOUMAX)》之銘言: : 大家好,想請問一下滑鼠偵測的問題 : 是這樣的,我想寫一個測LCD的程式 : 比如說有12個顏色,按一下滑鼠左鍵就換一個顏色 : 12個按完就自動結束,中途按右鍵則跳出 : (DisplayX公司用起來很慢,不知為什麼,其他的他們又不喜歡) : 所以才想自己學VB自己寫。。。 : 今天試了一下: : Private Sub Form_MouseDown(button As Integer, Shift As Integer, X As Single, : Y As Single) : If button = 1 Then : Form1.WindowState = 2 : Form1.BorderStyle = 0 : BackColor = RGB(255,255,0) : End If : If Button = 2 Then : End : End If : End Sub : 現在這樣執行以後,點選滑鼠任意鍵,工作視窗是會放到最大, : 然後變換成我要的顏色沒錯,按右鍵則是跳出來 : 可是想請問,那我想再按一下左鍵 : 換下個顏色,要怎麼做呢@@? 用API,GetAsyncKeyState (滑鼠左鍵按下:&H1)試試? '取得鍵盤滑鼠狀態(不論程式是否得到駐點) Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer 建一個Timer , 設interval 200左右就可以了 內容為: If GetAsyncKeyState(&H1) Then Do Until GetAsyncKeyState(&H1) = 0 DoEvents Loop 你要做的事 !! End If 不過這樣滑鼠在任何地方只要按下左鍵,都會動作喔 可以再配合 '使用 GetCursorPos Windows API(取得滑鼠座標) Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Public Const CTimer As Integer = 1 Public Type POINTAPI CurX As Long CurY As Long End Type Public mouse As POINTAPI 一樣在Timer裡,加上 Call GetCursorPos(mouse) '<<<>>> 然後用mouse.CurX 和 mouse.CurY 座標來判斷或指定你要的範圍內按下滑鼠左鍵才會觸發條件! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.220.247.236

12/10 14:28, , 1F
用叉子吃飯就好 為什麼要用鋸子
12/10 14:28, 1F

12/10 17:02, , 2F
他說叉子不行很詭異,所以把手邊的鋸子順手摳給用= =
12/10 17:02, 2F

12/10 17:07, , 3F
是很詭異 :( Sorry
12/10 17:07, 3F

12/11 00:00, , 4F
謝謝回應,我會好好研究的。應該是我程度差,可以的被我用
12/11 00:00, 4F

12/11 00:01, , 5F
到不行。
12/11 00:01, 5F

12/11 07:09, , 6F
用鋸子比較帥氣@@
12/11 07:09, 6F
文章代碼(AID): #1Iferc45 (Visual_Basic)
文章代碼(AID): #1Iferc45 (Visual_Basic)