Bilddaten innerhalb Rechteck verschieben

23/07/2010 - 12:52 von Wolfgang Badura | Report spam
Hallo Spezialisten.
Nachdem mein Icon-Erstellungsprogramm nun im Wesentlichen funktioniert
kommen Begehrlichleiten auf:
Ich habe auf ein Form gezeichnet.
Ich kann ein Rechteck erstellen, dieses zoomen und verschieben.
Was ich nun möchte, ist die Zeichnung innerhalb des Rechteckes samt diesem
zu verschieben.

Die Daten innerhalb des Rechteckes kann ich in ein BitMap stellen, und
dieses, jeweils nach den bereits vorhandenen
Paint-Aktivitàten an der neuen Position zeichnen.
Was aber wenn das Verschieben zu Ende ist?
Wie zeichne ich bleibend mit dem Paint Event den neuen Inhalt in das gesamte
Form?
Wie hole ich ihn zur weiteren Bearbeitung wieder heraus.

Vielleicht kann mir jemand die prinzipielle Vorgangsweise erklàren, oder
Links zur Verfügung stellen , wo ich das nachlesen kann.

Mit bestem Dank im Voraus

Wolfgang
 

Lesen sie die antworten

#1 Thorsten Albers
23/07/2010 - 13:12 | Warnen spam
Wolfgang Badura schrieb im Beitrag
<4c497468$0$19184$...
Die Daten innerhalb des Rechteckes kann ich in ein BitMap stellen, und
dieses, jeweils nach den bereits vorhandenen
Paint-Aktivitàten an der neuen Position zeichnen.
Was aber wenn das Verschieben zu Ende ist?
Wie zeichne ich bleibend mit dem Paint Event den neuen Inhalt in das


gesamte
Form?
Wie hole ich ihn zur weiteren Bearbeitung wieder heraus.



Das ist ein bischen kryptisch, was Du da schreibst...

Ich nehme 'mal an, es geht um einen Container, in welchem die Graphik
gehalten wird, und die Methoden, mit welcher Du die Graphik aus diesem
Container auf ein anderes Objekt zeichnest.

Als Container können die folgenden Objekte herhalten:
- PictureBox-Steuerelement
- Image-Steuerelement
- Picture-Objekt (Dim MyPic As StdPicture)

Der Inhalt der PictureBox làßt sich mit PaintPicture auf ein anderes Objekt
zeichnen, der Inhalt eines StdPicture-Objektes mit Render. Der Inhalt eines
Image-Steuerelementes làßt sich nur mit Set ... = Picture einem anderen
Objekt zuweisen.

Zudem kann man bei jedem Objekt, daß eine hDC-Eigenschaft hat, mit
Windows-API-Funktionen wie BitBlt(), DrawIcon(), DrawIconEx() und dgl. mehr
arbeiten.

Wenn man (wenigstens z.T.) unabhàngig von VB-Objekten bleiben will, kann
man die GDI-Objekte (die genannten VB-Objekte kapseln GDI-Objekte) selbst
erstellen, z.B. mit
- CreateCompatibleDC()
- CreateCompatibleBitmap()
- CreateIcon()

Einige Sachen dabei kann man sich erleichtern, wenn man die
MS-Graphikbibliothek GDI+ verwendet. Seit mind. MS Windows XP ist diese
standardmàßig vorhanden, bei MS Windows 9x (und 2000?) muß sie ggfs. erst
installiert werden. Informationen zu GDI+ findest Du im MSDN.

Thorsten Albers

albers (a) uni-freiburg.de

Ähnliche fragen