Ausschnitt aus Diagramm vergrößern
-
Hallo,
ich habe ein Koordinatensystem, indem ich Daten darstelle.
Jetzt möchte ich, daß ich mittels der Maus im Diagramm einen Bereich auswählen/markieren kann, z.B. indem ich ein Rechteck ziehe.
Dieser Bereich soll dann statt dem alten Diagramm sozusagen vergrößert dargestellt werden.
Wo fange ich da am besten an? Vermutlich mit einem Handle für LButtonDown, aber weiter?Vielen Dank schon mal,
Grüße
Yvonne
-
Ist 'SelectClipRgn' eine Möglichkeit? Und wenn ja, wie muß man da ansetzen?
Wenn nicht, welche GDI/CDC-Objekte würden sonst funktionieren?
Kennt jemand ein gutes, umfassendes GDI-Tutorial? - mit msdn komme ich leider nur sehr schlecht zurecht...Bitte um Hilfe.
Grüße
Yvonne
-
Also, um das Recheck zu kriegen bieten sich WM_LBUTTONDOWN und WM_LBUTTONUP an.
Schade, dass du mit der MSDN nicht zurecht kommst, da ist ein schönes Beispiel drin, wo du zum Teil abschreiben könntest: Scribble.
Wenn du Zeit hast, arbeite es durch. Mir hat es damals enorm geholfen was die Malerei auf CDCs anging.Wie man zoomt habe ich leider keine Ahnung.
-
Wenn ich Scribble erstelle und starte erhalte ich als Fehlermeldung:
Scribble error PRJ0019: Ein Tool hat einen Fehlercode aus folgender Quelle zurückgegeben: "Ein benutzerdefinierter Buildschritt wird ausgeführt."
Kann mit dieser Meldung leider nichts anfangen. Kann mir jemand helfen?
Grüße
Yvonne
-
...Also das vergrössern eines Aussschnittes ist kein Problem. das geht mit pDC->StretchBlt(...), ist aber nicht zu empfehlen, weil wenn du sich die Seitenverhältnisse ändern sieht das ganz extrem hässlich aus. Ich an deiner Stelle würds neu zeichnen.
Das eigentlich Problem, so vermute ich, du willst wissen, wie du sauber ein Rechteck zeichnen kannst, vom Punkt weg wo du das erstemal geklickt hast bis dorthin wo du die Maus wieder los lässt?
tja...
Die Sache ist die: Ich hab leider selber noch keine Funktion gefunden, welches so ein Rechteck zeichnet. Falls du aber eine entdeckst würd mich das sehr interessieren.Ich persönlich habe sowas über eine höchst aufwendige Funktion gelöst. Ich merke mir den Inhalt der Grafik wo ich gerade ziehe und speichere den in ein Bitmap. Beim Ereignis OnMouseMove, klatsche ich das Bitmap drauf und zeichne einen neuen Rand. Sinn der Sache ist es das Rechteck das ich zuvor gemalt habe wieder weg zu bringen.
-
Puuuh! Hört sich auch nicht unkompliziert an.
Ich suche so etwas wie im 'Paint'-Programm von Windows XP. Da gibt es eine Lupe, wenn man diese anklickt, erhält man ein Rechteck, dass man über die Zeichnung führen kann und dann der Ausschnitt vergrößert wird, der ausgewählt wird.
Allerdings sollte das 'Auswahl-Rechteck' eine variable und nicht wie hier feste Größe haben.
Wie kann man eigentlich ein solches Rechteck, daß sich verschieben läßt, kreiren?
Meine Idee ist, daß ich dann die Eckdaten von diesem Rechteck auslese (wenn das möglich ist), in meinem Datensatz dann nur die Daten berücksichtige, die in diesem Bereich liegen und diese neu und vergrößert zeichne.Das wird vermutlich allerdings mein Programm ziemlich verlangsamen, weil die Suche nach den entsprechenden Daten einfach Zeit benötigt (je nach Algorithmus mehr oder weniger).
Deshalb bin ich auf der Suche nach einer 'besseren' Alternative.
Wer kann mir helfen?Viele Grüße
Yvonne