PDA

Click to See Complete Forum and Search --> : cursor tracking is offset!!


shaba
Jun 6th, 2000, 05:42 AM
Hi!

i am using the GetCursorPos API to create a very simple paint program. I have a picturebox in my form and i look for a mousedown event. As long as the mouse is down, the getcursorpos api tracks the location of the cursor. It worked when i had the x,y locations displaying to two labels. But then i tried to use the pset function to draw a pixel at each x,y location. This is the part that doesnt work. The dots drawn in the picture box are offset from the real position of my mouse pointer. It also seems that it is offset by a very specific amount. i have the scalemode property of the picture box set to pixels. I also tried the SetPixelV API, but i get the same exact problem. The dots are offset from the real cursor position.


please let me know whats wrong.

shaba

Fox
Jun 6th, 2000, 05:54 AM
You have to subtract the position of the PictureBox and all parents. It's much easier to use the MouseMove ebent of the picture box to do such a thing (Especially if it should be easy):


Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Picture1.PSet (X, Y), 255
End If
End Sub

Stevie-O
Jun 7th, 2000, 08:36 AM
Also...use SetCapture in the MouseDown event and ReleaseCapture in the MouseUp event, so that you keep getting the MouseMove events while the user drags.