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

Hallo Leitmann,

mit dem DashStyle weist man entweder einen vordefinierten Stil zu oder setzt ihn auf "Custom", wenn ein selbstdefinierter verwendet werden soll. Dieser wird dann über DashPattern festgelegt, wobei eine Zuweisung an DashPattern automatisch den Style auf "Custom" setzt.

Der DashPattern ist einfach ein Array von float-Werten: Das erste Element ist eine Strichlänge, dann kommt eine Zwischenraumlänge, dann wieder eine Strichlänge und so geht das weiter, bis man das gewünschte Muster zusammengebaut hat. Die tatsächliche Länge der Striche und Leerräume ist dann das Produkt aus Strichbreite und den in DashPattern hinterlegten Werten.

Laut MSDN (dort stehr übrigens auch das eben Gesagte) musst du ein "__gc Array" (float) an "set_DashPattern" übergeben.
Da ich mit Managed C++ nix am Hut habe, überlasse ich nun dir die programmtechnische Umsetzung :-)

Gruß
MCoder
 
Ja, wieder mal ich :D

K, Danke nochmals MCode, hat eigentlich im Großen und Ganzen alles toll funktioniert,
jedoch ist die Angabe der Längen etwas confuse für mich :confused:

ich möchte genau 32 Pixel Strich, 16 Pixel Abstand usw... haben, wenn ich als float 32 und 16 angebe, zeichnet er das alles viel zu lang :(
Jetzt habe ich herausgefunden, dass der Umrechnungsfaktor zwischen Float und Pixel genau 6 ist...
Also sieht mein Code jetzt folgendermaßen aus:
C++:
	System::Drawing::Pen ^pen = gcnew System::Drawing ::Pen(this->ZLSElementStateColor, 7);
	pen->DashStyle = System::Drawing::Drawing2D::DashStyle::Dash;

	array<float> ^pattern = {5.3333333F, 2.666666F};

	pen->DashPattern = pattern;

	e->Graphics->DrawLine(pen, 0,this->Height/2, this->Width, this->Height/2);

Is jetzt eigentlich nicht so wichtgi, aber weißt du vielleicht, warum das so ist
Intressiert mich nur so....

Also dann, Big THX again111einseinself *gg*

,/ Hakerl ^^
 
Hallo MCoder :D ;)
Sag mal. lebst du noch? *gg*

Ich hätte da noch eine Frage bezüglich Zeichenroutinen in VC++

Und zwar wegen Schrift Umrandungen oder dergleichen...
Ich habe nun endlich herausgefunden, wie man eine Umrandung zeichnen kann *freu*

"FillPath und DrawPath" hat mir weitergeholfen ^^

Nun habe ich aber das Problem, dass ich nicht das bei einem Label brauche...

Ist es nun nötig, dass ich ein eigenes Label Control extra dafür erstelle?
Ich mein, muss ich von Label ableiten und die Paint Methode überschreiben, damit ich den umrandeten Text darstellen kann?
Oder wie kann ich in meiner Anwendung nur die Paint Methode überschreiben OHNE dass ich das ganze Control ableiten muss? geht das?

mfG
Leitman
 
Hurra Hurra ^^ *freu*

Zu deiner Frage: Würde es nicht reichen, dem Label über die BorderStyle-Property einfach einen Rahmen zu verpassen?
o.O hö?
Achso... nein, ich möchte nicht den Rahmen um das Label *lol*
das check ich schon, sondern um die Schrift machen!
Quasi so, als würde sich ein Schatten dahinter befinden... oder eine Umrandung eher gesagt...

Es muss doch irgendwie gehen, dass ich nur die Paint Methode eines Labels überschreibe oder?
Das ich halt sagen kann:
[Pseudocode]
wenn Variable umrandeterText == true
Zeichen Text selber
ansonsten verhalte dich wie normales Label
[/Pseudocode]

Nur wegen dem wollte ich eigentlich kein neues Control erstellen -.-
Ich habs jetzt trotzdem gemacht, weil das gebraucht wurde,
aber ich möchte das nicht so lassen... das ist mir irgendwie...
...
ich weiß nicht...
...unsympathisch ^^

Vielen Dank MCoder :) (wieder mal)
Hoffe, ich kann mich irgendwann mal revangieren ^^

mfG
der Leitman
 
Ah, jetzt habe ich erstmal kapiert, was du mit der Umrandung gemeint hast !
An die Paint-Methode kommst du von "aussen" nicht heran, da musst du schon ein eigene Klasse ableiten.

Gruß
MCoder
 
Zurück