ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
1642
1642
EMPFEHLEN
-
Hallo,
ich habe ein Problem (vb2005)! Ich möchte gerne Rechtecke in eine Form
zeichnen(kein Problem) aber ---- nun möchte ich eines(Zufällig) an eine
andere Position schieben (Maus), ein anderes an eine andere usw..
Habe schon viel über GDI gelesen ------ zwecklos - will nicht rein.
Wenn es möglich wäre hätte ich gerne einen nachvollziehbaren
Beispielcode.
Mit freundl. Grüßen
Emil
-
Der Titel ist jetzt nicht gerade optimal gewählt, "Hhhhhhhhhhhhhhhilfe" schreckt sehr ab das Thema zu öffnen.
Wie sieht denn dein Code soweit aus? Und warum verwendest du nicht die neuste Version von VB?
Wenn du pictureBoxes verwendest:
Code csharp:1
pictureBox1.Location = Mouse.Location;
-
Hallo Cromon,
zunächst herzlichen Dank für Deine SCHNELLE Antwort "Super".
Zu Deine Fragen - höhere VS Versionen sind für mich momentan nicht erschwinglich.
Zum Code:
habe bisher nur einen Testbutton - Bitmaps auf die Form zeichnen
und quasi daselbe für Rechtecke.
Private Sub Button1_click(.....)
Dim bm as New Bitmap("")
Dim gr as graphics = graphics.fromHwnd(mybase.Handle)
gr.translateTransform()
gr.RotateTransform(45) ---- Test um das Bitmap/Rechteck zu drehen
gr.drawImage(bm, 100, 100) ---- zeichnen der Bitmap/Rechteck
end Sub
ich hoffe Du bist soweit einverstanden?
mfG
Emil
-
Hallo,
Vorweg mal: Bitte für Code auch immer einen Code-Bereich verwenden
Code vb:1 2 3 4 5 6 7 8 9 10 11
Private Sub Button1_click(.....) Dim bm as New Bitmap("") Dim gr as graphics = graphics.fromHwnd(mybase.Handle) gr.translateTransform() gr.RotateTransform(45) ---- Test um das Bitmap/Rechteck zu drehen gr.drawImage(bm, 100, 100) ---- zeichnen der Bitmap/Rechteck end Sub
Für Drag&Drop Funktionalität ist folgendes zu implementieren:
- Im MouseDown Handler des Steuerelements auf dem du zeichnest:
Abfragen ob die Maus über einem deiner Grafikelemente ist, wenn ja merken über welchem - Im MouseMove:
Wenn im MouseDown ein Steuerelement gemerkt wurde -> dieses um die Mausbewegung verschieben. - Im MouseUp:
Merken des Grafikelements beenden.
- Im MouseDown Handler des Steuerelements auf dem du zeichnest:
-
Hallo,
Danke Dir für dEINE Antwort.
Ich denke mein Hauptproblem liegt darin zu erkennen wie ein Grafikobject unter der
Maus erkannt werden soll!
Bei Steuerelementen ist das kein Problem Sie haben einen eindeutigen Namen z.B.:
(Button1, Label1 ... x) und konnen problemlos mit (me.Controls(CType(sender, button)...)
abgefragt bez. identifiziert werden.
Ich denke ich brauche was das Problem betrifft genaue - nachvollziehbare Erklärungen
mit script-Beispielen: daß ich es nachvollziehen kann.
mfg
Emil
-
Du musst einfach die Position der einzelnen Graphikelemente irgendwo speichern. Dazu bieten sich die diversen Container von .NET recht gut an.
-
Für selbst gezeichnete Objekte gibt es keine vorhandene Möglichkeit um sowas zu überprüfen. Das musst du schon selber machen.
Ich würde mir z.B.: alle Objekte die ich zeichne in einem Array speichern, und dann je nachdem was für Elemente ich gezeichnet habe eine Funktion implementieren die dir sagen kann ob ein Punkt innerhalb eines Objektes liegt.
Edit:// Wenn du die Objekte rotierst wird das nicht ganz trivial werden.
-
Die GraphicsPath-Klasse kann dir da eine Menge Arbeit bezüglich Kollisionsabfrage abnehmen. Mit der IsVisible-Methode kannst du überprüfen ob ein Punkt innerhalb der geometrischen Form liegt, welche durch das GraphicsPath-Objekt definiert wurde.
Geändert von Shakie (05.08.10 um 01:34 Uhr)
-
17.10.10 10:27 #9Maxi Tutorials.de Gastzugang
Ich hatte mal das gleiche problem mit pictureboxen
ich habe dan eine variable z.B. "auswahl" deffiniert
und dann bei bicturebox mouse hover? oder so halt wenn die maus überm object ist
auswahl = object name
und bei mouse down
wenn auswahl = object name
dann: objekt position x = objekt position x + mousepositions änderung x
objekt position y = objekt position y + mousepositions änderung y
bei maus überm hintergrund noch
auswahl = ""
bin mir net sicher obs hilft
Ps: änderung = neue position - alte position
also musst du die alte kennen (variable)
Ähnliche Themen
-
Hintergrund mit Maus verschieben
Von mxxxx im Forum Javascript & AjaxAntworten: 11Letzter Beitrag: 15.04.10, 11:44 -
Link mit Maus verschieben
Von hadda im Forum Javascript & AjaxAntworten: 15Letzter Beitrag: 25.05.08, 19:50 -
IE7 Streikt: DIV mit Maus verschieben
Von X-Color im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 10.10.07, 09:34 -
Form mit Maus verschieben
Von Meldur im Forum .NET Windows FormsAntworten: 5Letzter Beitrag: 09.07.07, 14:25 -
Butten mit der maus verschieben können
Von ZeroGirl im Forum Delphi, Kylix, PascalAntworten: 28Letzter Beitrag: 02.07.04, 13:19





Zitieren
Login




