Probleme mit GDI+
-
Moin,
ich habe mal versucht mich an GDI+ ranzuwagen.
Dazu habe ich mir eine MFC-Anwendung gebastelt und mich an diesen Artikel gehalten:[url]
http://www.c-plusplus.net/forum/viewtopic-var-t-is-128603.html
[/url]So. In der OnCreate-Methode habe ich die GdiplusStartup eingefügt und in die OnClose-Methode die GdiplusShutdown.
Nun meckert aber der Compiler rum, er kann diese beiden Verweise nicht finden.
Ich habe aber die Windows.h und gdiplus.h ordnungsgemäß eingefügt.
Habt ihr vielleicht ein Ahnung, woran es liegen könnte??
mfg
plugnpray
-
Aus dem Artikel, den du verlinkt hast:
Um die GDI+ nutzen zu können, muss die gdiplus.lib dem Linker mitgeteilt werden
-
Danke.
Hab ich wohl in aller Aufregung überlesen.
-
Jetzt habe ich aber ein neues Problem.
Ich zeichne in der OnPaint-Methode ein Rechteck.
Wenn ich das Fenster nun vergrößere oder verkleiner, dann wird ja jedesmal die OnPaint-Methode neu aufgerufen.
Dabei wird dann über das alte Rechteck das neue "übermalt".
Wie kann ich das beheben.
Ich habs schon mit der Clear-Funktion probiert, aber ich weiß leider nicht die Default-Farbwerte für das Fenster.Habt ihr vielleicht eine Lösung??
-
Wieso Problem? Wenn es nicht gemalt wird, dann siehst du da nichts?!
-
Also es ist ja richtig, das OnPaint aufgerufen wird. Und du mußt dann immer den aktuellen Stand zeichnen.
Oder welches Problem meinst du?
-
Ich meine, wenn ich das Fenster vergrößere zu "unschönen" Zeichnungen kommt.
Ich würde gerne das Fenster mittels Clear einmal säubern und dann neu zeichnen.Nur weiß ich nicht, wie die Standard-Werte bei der Clear-Anweisung sind, damit ich wieder genau den gleichen Hintergrund wie bei einer normalen MFC-Anwendung habe.
Ich bräuchte also die RGB-Werte für den grauen Hintergrund.
Damit würde ich das Problem lösen.
-
Achso, das meinst du. Also erstmal, das Fenster bzw. eine View löscht man in der OnClear() Methode (heißt die so?). Wenn du das in der OnPaint machst, wird es wohl zu unschönem Flackern kommen.
Wenn du keine eigene Hintergrundfarbe bestimmst, mußt du die Systemfarben auslesen. Leider weiß ich jetzt nicht, wo man die herbekommt. Müsste man in der MSDN nachschauen, bin mir aber sicher, das jemand anders dir die Methode zur Abfrage nennen kann.
-
Cool, mit den Systemfargben funzt es jetzt.
Danke.