ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
2118
2118
EMPFEHLEN
-
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.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
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?Geändert von wewa (09.09.08 um 15:12 Uhr)
-
09.09.08 15:01 #2
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Mal unabhängig von deinem Problem: Dir ist bewusst, dass in dem Code-Ausschnitt oben nirgends die Sub "GetMousePos" aufgerufen wird?
Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
Diese Funktion wird momentan auch nicht benötigt (darum aus gepostetem Code entfernt).
Aber darin liegt ja auch gar nicht das Problem.
-
oder gibt es vielleicht die Möglichkeit, die Mausposition innerhalb des aktuellen Fensters zu ermitteln?
-
09.09.08 15:43 #5
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Ich glaube eher, das Problem liegt darin, dass die Spitze des Mauszeigers eben nicht der Punkt ist, auf welchen sich die Maus-Koordinaten beziehen, sondern eben um ein paar Pixel versetzt ist. Mag mich aber auch irren.
Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
nein die Koordinaten geben sicher die Spitze des Mauszeigers an (das merkt man schon daran, dass das Rechteck ziemlich weit verschoben ist).
Das liegt daran, dass sich die Top und Left Koordinaten eines Forms an den äßeren Rand des Forms beziehen. Und die Koordinaten von Elementen im Form beziehen sich auf den inneren Rand des Forms. Darum müsste ich irgendwie die Breite der Ränder ermitteln.
-
10.09.08 10:26 #7
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
uff, ich erinner mich dunkel daran, dass es ne Möglichkeit per API gibt, den Client-Bereich eines Fensters zu ermitteln (Jedes Fenster hat ein Rectangle für sich, als auch ein Rectangle für den Clientbereich)
Ich glaube das war die API "ClientToScreen".Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
Ähnliche Themen
-
Object mit der Maus bewegen
Von sharK223 im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 28.06.10, 18:11 -
Mit der Maus Landschaft bewegen?
Von ValentinWinkelmann im Forum Flash PlattformAntworten: 2Letzter Beitrag: 17.01.10, 17:41 -
Maus Bewegen
Von liquidbeats im Forum Coders TalkAntworten: 10Letzter Beitrag: 25.05.05, 11:24 -
Objekte mit der Maus bewegen und nur an bestimmten Stellen absetzen
Von altox-de im Forum Flash PlattformAntworten: 4Letzter Beitrag: 19.08.04, 14:18 -
Maus bewegen
Von bigmex im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 09.08.04, 19:35





Zitieren
Login





