Ich versuche in einer Userform per Mausklick ein Label zu setzen. An genau die gleiche Stelle, wie der Mauszeiger.
Leider scheinen die - nennen wir es mal - "Einheiten" der Werte der Cursorposition nicht mit den "Einheiten" zusammen zu passen, die ich für das Erstellen des Labels nutze. Folglich erscheint das Label nicht an der Mauszeigerposition sondern sondern - je weiter ich in Y und X von der linken oberen Ecke wegklicke umso weiter nach rechts und unten versetzt...
Um welche Einheiten handelt es sich: Pixel? mm? Inch? Excelintern? und wie kann ich diese Umrechen?
Hier der Code zum Ermitteln der Cursorposition:
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Sub mousemove()
Dim pTargetPoint As POINTAPI
Dim lRetVal As Long
If main.Left 0 And main.Top 0 Then
main.Left = 0
main.Top = 0
main.Repaint
End If
lRetVal = GetCursorPos(pTargetPoint)
main.lbl_posx.Caption = pTargetPoint.X
main.lbl_posy.Caption = pTargetPoint.Y
posx = pTargetPoint.X
posy = pTargetPoint.Y
End Sub
Und hier der Code zum setzen des Labels:
Private Sub lbl_transparent_Click()
Dim thema As msforms.Label
Set thema = Me.Controls.Add("Forms.Label.1")
With thema
.Left = posx
.Top = posy
.Caption = "Mein Label"
End With
End Sub
Hat jemand eine Idee?
VG Uwe