Solved

Return (x,y) values of 6 clicked locations

Posted on 1998-06-22
3
186 Views
Last Modified: 2010-05-03
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
Comment
Question by:xoooox
  • 2
3 Comments
 
LVL 1

Accepted Solution

by:
kesonline earned 100 total points
ID: 1463998
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
 
LVL 9

Expert Comment

by:Dalin
ID: 1463999
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
 
LVL 1

Expert Comment

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

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
Most everyone who has done any programming in VB6 knows that you can do something in code like Debug.Print MyVar and that when the program runs from the IDE, the value of MyVar will be displayed in the Immediate Window. Less well known is Debug.Asse…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now