Получить текущую позицию мыши в GiveFeedback-Event - PullRequest
0 голосов
/ 12 октября 2018

Я должен что-то нарисовать во время выполнения полного контроля DragDrop.Я копирую экран из элемента управления и рисую над ним.Затем изображение используется в качестве курсора.

Проблема заключается в том, что для сгенерированного изображения в курсоре требуется хоспот, который зависит от положения мыши.Но как мне получить правильную позицию в событии GiveFeedback?В моей версии с Control.MousePosition, но картинки качаются взад-вперед.Вот код с мероприятия:

Private Sub Panel1_GiveFeedback(sender As Object, e As GiveFeedbackEventArgs) Handles Panel1.GiveFeedback
Dim Pan As Panel = sender
Dim pMouseScreen = Control.MousePosition, pMouseClient = Pan.PointToClient(pMouseScreen)
Dim RPanelClient = Pan.ClientRectangle, RPanelScreen = Pan.RectangleToScreen(RPanelClient)
Using BMP As New Bitmap(RPanelClient.Size.Width, RPanelClient.Size.Height)
  Using Gr = System.Drawing.Graphics.FromImage(BMP)
    Gr.CopyFromScreen(RPanelScreen.Location, Point.Empty, BMP.Size)
    Gr.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
    Using P As New Pen(Color.Black, 5)
      Dim P1 = New Point(0, pMouseClient.Y), P2 = New Point(RPanelClient.Right - 1, pMouseClient.Y)
      Gr.DrawLine(P, P1, P2)
    End Using
    Dim Cur = Cursors.Default   ' 
    Dim Rcursor = New Rectangle(pMouseClient, Cur.Size)
    Cur.Draw(Gr, Rcursor)
  End Using
  e.UseDefaultCursors = False
  Cursor.Current = CreateCursorFromBMP(BMP, pMouseClient)
End Using

End Sub

Как это сделать правильно?

Большое спасибо и привет от Торстена

...