GDI+, Ellipse zeichnen und mit Verlauf füllen
-
verweis noch oben
ersten beiden kannst du auch mit VC6 nutzen.
EDIT: OK, das zweite kannst du mit VC6 nutzen, wer lesen kann ist im Vorteil, nicht war
codeman
-
Ich kann zwar lesen, aber verstehe trotzdem nicht
Hab schon vorher versucht der Anleitung auf Codeprojekt zu folgen, scheitere aber immer am Anfang:
Wie bekomme ich GDI+ zum laufen. Das ist auf Codeproject so kurz erklärt, das ich es nicht verstehe. Der Rest dürfte dann kein Problem mehr sein.
@Codeman: Kannst du mir vielleicht sagen, was ich machen muss, damit ich GDI+ grundsätzlich verwenden kann?? Dann wäre das schlimmste geschafft.
DANKE und chiao,
cha-OS
-
Also GDI+ (Graphics Device Interface) ist eine vielzahl von Funktionen mit denen du jegliche Art von Darstellungen kreieren, manipulieren, usw. kannst.
Leider kann ich dir nicht sagen wie du damit beginnen solltes, da ich nicht weis was du vor hast. Die GDI ist schon kompliziert und umfangreich genug, dann noch die neue GDI+, dankeschönDu hast dir da ein schönes, umfangreiches Thema ausgesucht was nicht ganz so einfach ist, wie ich glaube das du es dir vorstellst(kann auch sein das ich mich da irre).
Allerdings bedarf es bei der Verwendung der GDI, GDI+, jede menge Grundkenntnisse über Windows Graphic System Architektur, usw. Es ist echt ein weites Feld.
Mein Tip: Kauf dir ein Buch über die Verwendung der GDI, usw.
Z.B. Windows Graphic Programming, hab ich mir zugelegt, da steht alles drin.Sorry aber da muß man sich durchschmökern, mit kurzen Tips ists da nicht abgetan.
codeman
-
Danke @codeman!
Dann werd ich wohl oder übel den umständlichen Weg gehen müssen! Danke für die Beratung,
chiao cha-OS
-
So ein Quatsch das man viele Grundkenntnisse der Windows-Grafikprogrammierung benötigt. GDI+ ist super einfach und idiotensicher. Ich habe für das C++ Magazin (von diesem Forum meine ich) einen GDI+-Artikel geschrieben. Leider erscheint er erst am 16.12.05.
Aber darin sieht man das alles easy ist, habe es alles step-by-step beschrieben.
Wo liegt denn genau das Problem? Ich lese hier immer nur "Es läuft nicht"... tolle Beschreibung!
Du benötigste eigentlich nur die gdiplus.h und gdiplus.lib, wenn du schon WinXP hast. Für nicht-WinXP bräuchte man noch die gdiplus.dll.
Normalerweise kann man das gdiplus-SDK auch einzeln runter laden. Müsste man nochmal gezielter danach suchen. Bin aber auf Arbeit und hab jetzt keine Zeit dafür.
-
Hi Artchi!
Du benötigste eigentlich nur die gdiplus.h und gdiplus.lib, wenn du schon WinXP hast
Genau da liegt das Problem: Ich habe die beiden Dateien, aber scheinbar mache ich bei der Verwendung der Selbigen irgendetwas falsch?!
Ich gehe dabei nach der Beschreibung auf http://www.codeproject.com/vcpp/gdiplus/startinggdiplus.asp vor.
Ich möchte soweit kommen, dass ich die Dateien (gdiplus.h und gdiplus.lib) richtig einbinde und somit die Funktionen von GDI+ für meine Zwecke verwenden kann (vorallem der Farbverlauf ist mir wichtig).
Mit anderen Worten: Es geht darum, mein C++-Programm soweit vorzubereiten, dass ich mit den Funktionen die ich in der MSDN gefunden habe (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/usingGDIPlus/fillingshapeswithagradientbrush/creatingapathgradient.asp) arbeiten kann.
Danke Artchi für deine Hilfe! Bin zuversichtlich das doch noch zu schaffen!
PS: Du hast mein Interesse an deinen Artikel geweckt, wo kann ich ihn mir ansehen, wenn es dann soweit ist?
-
Du musst das PSDK installieren, da sollte alles dabei sein:
Für VC6: http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
-
@Cha-OS! Tu dir und uns einen gefallen, und poste bitte endlich mal die Fehlermeldung, die du bekommst, wenn du die GDI+ benutzen willst. Wie gesagt, "Geht nicht" ist keine Fehlerbeschreibung.
Leider kann ich nicht sagen, ob man das ganze platform SDK installieren muß. Damals als GDI+ erschien, war das Platform SDK noch 100 MB groß, da hatte ich es einfach runter geladen. Heute hab ich VC++2003, da brauch ich das SDK nicht. Hast du das SDK installiert?
Aber vielleicht reicht auch nur die header und die Lib aus. Weiß ich nicht.
Also, poste die Fehlermeldung, damit wir hier nicht im Dunkeln stochern.
-
cha-OS schrieb:
PS: Du hast mein Interesse an deinen Artikel geweckt, wo kann ich ihn mir ansehen, wenn es dann soweit ist?
In der Forenübersicht->Magazin->Artikel.
-
Also, erstmal danke für eure Geduld!
Die Fehlermeldung:
fatal error C1083: Include-Datei kann nicht geoeffnet werden: 'gdiplus.h': No such file or directory
Was ich gemacht habe:
1. Die gdiplus.lib Datei über Projekt|Einstellungen|Linker eingebunden.
2. Die gdiplus.h über Projekt|Dem Projekt hinzufügen|Dateien hinzugefügt.
2. In die stdafx.h die gdiplus.h includiert.Dann wollte ich testen, ob bis zu diesem Punkt alles passt, und habe das Programm ausgeführt --> obige Fehlermeldung wurde angezeigt (es ist übrigens der einzige Fehler).
Danke, chiao
cha-OS
-
Ja, er findet die Header Datei nicht. Ist die Frage, wie hast du sie includiert? Mit spitzen Klammern oder mit Anführungszeichen?
Wenn du die Header zu deinem Projekt hinzufügst, mußt du das mit Anführungszeichen includieren. Wenn es in einem Include-Pfad liegt (was laut deiner Beschreibung nicht so zu sein scheint), mit spitzen Klammern.
-
Hi Artchi,
es funktioniert leider mit keiner der beiden Klammern. Immer noch die selbe Fehlermeldung.
Danke!
-
Ist denn auch die Header-Datei in deinem Projektordner?
-
Hi Leute!
Zuerst mal ein Danke für die Hilfe
Hab das Projekt jetzt, unter Berücksichtigung eurer Tipps, neu angefangen und es funktioniert soweit alles! Ich habe jetzt alle .h Dateien miteingebunden die beim Download "gdiplus.zip" dabei waren (GdiPlusBrush.h, GdiPlusBase.h...)
Möchte ich jedoch den Code aus der MSDN verwenden:// Create a path that consists of a single ellipse. GraphicsPath path; path.AddEllipse(0, 0, 140, 70); // Use the path to construct a brush. PathGradientBrush pthGrBrush(&path); // Set the color at the center of the path to blue. pthGrBrush.SetCenterColor(Color(255, 0, 0, 255)); // Set the color along the entire boundary of the path to aqua. Color colors[] = {Color(255, 0, 255, 255)}; int count = 1; pthGrBrush.SetSurroundColors(colors, &count); graphics.FillEllipse(&pthGrBrush, 0, 0, 140, 70);
bekomme ich einige Fehlermeldungen.
Einige davon sind:'GraphicsPath' : nichtdeklarierter Bezeichner
Der linke Teil von '.AddEllipse' muss eine Klasse/Struktur/Union sein
'PathGradientBrush' : nichtdeklarierter Bezeichner
Der linke Teil von '.SetCenterColor' muss eine Klasse/Struktur/Union sein
Wahrscheinlich ist mein Fehler primitiv aber alleine komme ich scheinbar nicht darauf.
Hab ihr eine Idee??chiao cha-OS
-
Sry für den Doppelpost, aber hat denn wirklich niemand eine Idee wie ich mit GDI+ eine Ellipse zeichnen und mit einem Verlauf füllen kann
Bitte helft mir,
chiao cha-OS