[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 211
  • Last Modified:

Return (x,y) values of 6 clicked locations

I have a PictureBox control opened.

Then, here's what I need to do (Instructions in Human Language) :

1. Click on 6 different locations on the PictureBox using my mouse
button

2. Return the X,Y coordinates of each of the 6 locations and store them
in 2 one-dimension arrays namely,    Dim x(1 to 6), y(1 to 6) as Integer
 

Really glad if you could help.

0
xoooox
Asked:
xoooox
  • 2
1 Solution
 
kesonlineCommented:
This should be very easy. Here's what you do (i'm assuming you want pixel locations, not twips):
Create a form (frmMain) with two command buttons (cmdStart, cmdShow), a listbox (lstPoints), and a picturebox (picPoints) with scalemode set to pixels (3).
Here's the basic code:
(this is general declarations)
Dim ptsX(1 To 6) As Integer
Dim ptsY(1 To 6) As Integer
Dim clicking As Boolean
Dim clicks As Integer

Private Sub cmdShow_Click()
lstPoints.Clear
For i = 1 To 6
    lstPoints.AddItem CStr(ptsX(i)) + "," + CStr(ptsY(i))
Next i
End Sub

Private Sub cmdStart_Click()
clicking = True

End Sub

Private Sub Form_Load()
clicks = 0
End Sub

Private Sub picPoints_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If clicking Then
    Beep
    clicks = clicks + 1
    ptsX(clicks) = X
    ptsY(clicks) = Y
End If
If clicks = 6 Then
    clicks = 0
    clicking = False
    cmdShow_Click
End If
End Sub



0
 
DalinCommented:
xoooox,
Try the following. If you have questions, let me know.
Regards
Dalin

'1. declaration:

          Private Type POINTAPI
              x As Long
              y As Long
          End Type

          Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

 

 2. In your picture's Click event, add:

          Dim p As POINTAPI
          Static clickCount as Integer
          If ClickCount = 0 then clickcount = 1
          If clickCount >6 then
              'Do what you like, reset or just exit
              ' I am reset it
              Clickcount = 1
             End if
          Call GetCursorPos( p )
          x(clickcount) = p.x
          y(clickCount)= p.y


0
 
kesonlineCommented:
Question for Dalin - why the whole big POINTAPI stuff - you don't need any API calls for this program. Just wondering...
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now