GDI+, Ellipse zeichnen und mit Verlauf füllen



  • 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.

    http://www.c-plusplus.net/forum/index-var-c-is-9.html



  • 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


Anmelden zum Antworten