-
03.08.06 12:52 #1
Hallo zusammen

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
LeimanGeändert von the incredible Leitman (03.08.06 um 12:59 Uhr)
Meine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
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"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
04.08.06 11:38 #3Hey, vielen Dank für den Hinweis, das ging aber flott
Zitat von MCoder

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
LeitmanMeine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
07.08.06 10:07 #4
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 LeitmanMeine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
Das kannst du mit einem HatchBrush erledigen. Ich poste einfach mal den entsprechen Link zur MSDN
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
07.08.06 10:41 #6Ahh....Danke, das sieht gut aus! Wusste einfach nicht, wonach ich suchen soll, deshalb war mir die MSDN keine Hilfe!
Zitat von MCoder
Aber super ich glaube, dass ist das Richtige,
big THX
LeitmanMeine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
07.08.06 15:48 #7
Puh... ist das vielleicht aufwendig
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*Meine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
Probier's im Control mal mit:
GrußCode cpp:1 2 3
this->BackColor = Drawing::Color::FromArgb(0,0,0,0); this->SetStyle(static_cast<ControlStyles>(ControlStyles::SupportsTransparentBackColor), true); this->UpdateStyles();
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
07.08.06 17:10 #9
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?
Meine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
Geht so
Zitat von leitman
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"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
08.08.06 09:33 #11
Danke erstmal,
lässt sich fehlerfrei kompilieren, ich kann mein Control auch auf die Form ziehen und alle Funktionen laufen... aber in Sachen Transparenz hat sich nicht viel getan...
Die Controls überlappen sich noch immer gegenseitig
Hab probiert die Farbe zu ändern (auf Empty, Transparent) aber funkt alles nicht
das Control übernimmt zwar die Farbe der Form als Hintergrund, aber nicht die des darunterliegenden Controls! Außerdem werden Linien aus diesen Controls nicht angezeigt wenn sie drunter liegen...
Vielleicht noch eine Idee?
Meine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
Scheint ein Bug in der Klassenbibliothek zu sein. Nach einigem Suchen habe ich eine Lösung gefunden: Die Property "CreateParams" muss überschrieben werden. Habe allerdings nur den C#-Code, du musst mal schauen wie du das mit Managed C++ hinbekommst.
GrußCode cpp:1 2 3 4 5 6 7 8 9
protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x00000020; return cp; } }
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
09.08.06 09:58 #13
Sers!
Tut mir leid, hat etwas länger gedauert, war ziemlich beschäftigt!
Ich habe die Property CreateParams überschrieben wie du gesagt hat! Das hat aber dann nicht so funktioniert wie ich wollte, deshalb habe ich zuätzlich die Methode OnPaintBackground überschrieben und leer gelassen!
Jetzt funktionierts super... naja, nur mit den Labels muss ich mir noch etwas überlegen...
Die benötigten Zeilen sehen in managed C++ so aus:
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
protected: property System::Windows::Forms::CreateParams ^ CreateParams { virtual System::Windows::Forms::CreateParams ^ get() override { System::Windows::Forms::CreateParams ^cp = System::Windows::Forms::Control::CreateParams; cp->ExStyle|=0x00000020; //WS_EX_TRANSPARENT return cp; } } public: virtual void OnPaintBackground(PaintEventArgs ^args ) override sealed { }
Danke nochmal, du bist echt eine Riesen Hilfe
mfG
LeitmanMeine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
10.08.06 13:07 #14
Hey, tut mir echt leid,
ich bin schon wieder
Jetzt klappt das alles wunderbar, ich kann die einzelnen Controls überlagern, die z-Order setzten, alles kein Problem!
Jedoch haben meine Controls auch integrierte Textfelder die ich bei Bedarf ein/aus schalten, die Position und den Text ändern usw... möchte
Aber seit alle meine Controls transparent sind, ist der Text der Label immer so schirch
Was kann ich da machen? Muss ich den LabelBackground irgendwie bestimmt setzen?
Wär toll, wenn du mir noch einmal helfen könntest
Meine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
Ähh, was muss ich mir unter "schirch" vorstellen
Zitat von leitman
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
Ähnliche Themen
-
DrawLine in Bitmap konvertieren und vergrössern
Von alex-test im Forum .NET Grafik und SoundAntworten: 2Letzter Beitrag: 20.12.07, 17:44 -
Gif anstelle von BMP auf CButton
Von sand13r im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 07.11.07, 08:35 -
JButton in der linken oberen ecke nach drawLine
Von Fu-Schnickens im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 11.01.06, 00:48 -
div anstelle von table
Von DiveSurfer im Forum HTML & XHTMLAntworten: 3Letzter Beitrag: 30.03.05, 00:04 -
Is das richtig Was ich da Anstelle ?!
Von liquidbeats im Forum PHPAntworten: 2Letzter Beitrag: 28.02.04, 09:58



1Danke

Zitieren
Login






