[VC++] Zeichenbefehle? Bessere anstelle von drawLine usw...

the incredible Leitman

Erfahrenes Mitglied
Hallo zusammen :D

Ich möchte in Visual Studio 2005 auf einer Form etwas zeichnen.
Jedoch komme ich mit den mir bekannten Zeichenbefehlen (wie DrawLine, DrawRectangle usw...) nicht voran, das wirkt mir alles zu plump :(

Gibt es eine Möglichkeit, zB eine abgerundete Biegung zu zeichnen oder einfach Kanten zu glätten? Weiß leider nicht einmal wonach genau ich suchen soll... Hoffe ihr könnt mir weiterhelfen,

Vielen Dank im Vorraus

mfG
Leiman
 

Anhänge

  • 25536attachment.jpg
    25536attachment.jpg
    3,2 KB · Aufrufe: 96
Zuletzt bearbeitet:
Für abgerundete Ecken gibt's leider nicht. Dafür musst du selber die entsprechenden Zeichenbefehle kombinieren. Die Kantenglättung allerdings läßt sich mit der SmoothingMode-Eigenschaft der Graphics-Klasse einstellen. mit SmoothingMode.AntiAlias werden die Kanten geglättet.

Gruß
MCoder
 
MCoder hat gesagt.:
Für abgerundete Ecken gibt's leider nicht. Dafür musst du selber die entsprechenden Zeichenbefehle kombinieren. Die Kantenglättung allerdings läßt sich mit der SmoothingMode-Eigenschaft der Graphics-Klasse einstellen. mit SmoothingMode.AntiAlias werden die Kanten geglättet.

Gruß
MCoder
Hey, vielen Dank für den Hinweis, das ging aber flott :D

Ok, ich habs jetzt folgendermaßen gelöst:
um eine aberundete Ecke zu zeichnen, hab ich einfach zwischen den beiden Lines eine Ellipse mit der selben Breite wie die Linien ausgefüllt!
Is halt ein Umweg, aber funkt toll!

Danke nochmals
k33p it Real
Leitman
 
Hallo Ihr!

Ich habe noch eine Frage bezügl. Zeichenbefehle in VC++:
Gibt es irgendeinen Befehl, mit dem ich eine Fläche (eine Rechteck und ein Polygon / Trapez / Parallelogramm) schraffieren kann?
Bis jetzt konnte ich es mit for-Schleifen lösen (solange du dich in der Fläche befindest, zeichne eine Linie alle 10 pixel)
Aber möchte ich Flächen schraffieren, die keine bestimmte festgelegte Größe haben, also während der Laufzeit veränderbar sind...

Muss ich das mathematisch mit komlpizierten Berechnungen lösen, oder gibt es einen einfachen Befehl, indem ich eine angegebene Fläche schraffieren kann?

Hoffe mir kann jemand helfen, vielen Dank im Vorraus

mfG
der Leitman
 
Puh... ist das vielleicht aufwendig :suspekt:
Kaum hat man ein Problem gelöst, tritt schon wieder ein neues auf :(

Jetzt habe ich echt tolle Controls gebastelt, schauen super aus, funktionieren ohne Probleme!
Aber nun möchte ich sie in eine Windows Form einbauen!
Das Problem ist nun, dass sie sich teilweise überschneiden und man somit von dem jeweils unterliegendem Controls bestimmte Bereiche nicht mehr sieht :(

Wie kann ich das verhindern? Geht das überhaupt?


mfG Leitman

PS: Hab schon versucht mit BackColor::Empty, aber das geht nicht *sniff*
 
Probier's im Control mal mit:
C++:
this->BackColor = Drawing::Color::FromArgb(0,0,0,0);
this->SetStyle(static_cast<ControlStyles>(ControlStyles::SupportsTransparentBackColor), true);
this->UpdateStyles();
Gruß
MCoder
 
nope! geht auch nicht,
Lässt sich Fehlerfrei kompilieren, keine Warnung, nichts,
aber wenn ichs versuche auf meine Form zu ziehen erscheint eine Fehlermeldung (angehängtes Bild)

PS: sag, du bist aber schon voll der GUI Paint / GraphicsKlasse Checker oder? :D
 

Anhänge

  • 25582attachment.jpg
    25582attachment.jpg
    22,4 KB · Aufrufe: 135
leitman hat gesagt.:
PS: sag, du bist aber schon voll der GUI Paint / GraphicsKlasse Checker oder? :D
Geht so ;-) Was .NET betrifft aber eher mit C#; das Managed C++ finde ich einfach fürchterlich.

Was Deine Fehlermeldung betrifft: Füge die Zuweisung der BackColor nach der Styleänderung ein. Er beschwert sich, dass keine transparenten BackColors unterstützt werden, was ja auch erst in den anderen beiden Zeilen erledigt wird.

Gruß
MCoder
 

Neue Beiträge

Zurück