wewa
Mitglied
Hallo!
Ich würde in meinem VB 6 Programm gerne Objekte wie Rechtecke usw. mit der Maus bewegen.
Zunächst habe ich da mal ein Programm, bei dem einfach ein Rechteck (in meinem Fall ein Label mit schwarzem Rahmen) am Mauszeiger hängt.
Mein Problem ist nun, dass die Grafik nicht an der Spitze des Mauszeigers hängt, sondern um einige Pixel verschoben.
Darum bräuchte ich eine Methode um die Breite der Ränder (Oben und Links) zu ermitteln, damit ich das bei der Berechnung der Position des Rechtecks berücksichtigen kann. Hat vielleicht jemand eine Möglichkeit parat?
Oder gibt es eine einfachere Möglichkeit, Objekte mit der Maus zu bewegen?
Ich würde in meinem VB 6 Programm gerne Objekte wie Rechtecke usw. mit der Maus bewegen.
Zunächst habe ich da mal ein Programm, bei dem einfach ein Rechteck (in meinem Fall ein Label mit schwarzem Rahmen) am Mauszeiger hängt.
Code:
Option Explicit
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" _
(lpPoint As POINTAPI) As Long
Public Function GetMouseX() As Long
'Left
Dim nPoint As POINTAPI
GetCursorPos nPoint
GetMouseX = nPoint.X - ScaleX(Me.Left, vbTwips, vbPixels)
End Function
Public Function GetMouseY() As Long
'Top
Dim nPoint As POINTAPI
GetCursorPos nPoint
GetMouseY = nPoint.Y - ScaleY(Me.Top, vbTwips, vbPixels)
End Function
Private Sub Timer1_Timer()
Text1.Text = CStr(GetMouseY())
Text2.Text = CStr(GetMouseX())
lblRechteck(0).Top = GetMouseY()
lblRechteck(0).Left = GetMouseX()
End Sub
Darum bräuchte ich eine Methode um die Breite der Ränder (Oben und Links) zu ermitteln, damit ich das bei der Berechnung der Position des Rechtecks berücksichtigen kann. Hat vielleicht jemand eine Möglichkeit parat?
Oder gibt es eine einfachere Möglichkeit, Objekte mit der Maus zu bewegen?
Zuletzt bearbeitet: