RECT
-
das liegt an der unterscheidung von
int i=0;und
int i; i=0Das erste ist eine Initialisierung das zweite eine Zuweisung.
Für primitive Datentypen ist das noch simpel, Bei Klassen wird es Komplizierter.Da wird im ersten Fall der Copyconstrukter aufgerufen und im 2. der Zuweisungsoperator.
Mehr dazu darf ich hier (im WinAPI Forum) nicht sagen, da sonst ascda wieder anfängt zu flamen.
-
ja ok so weit komm ich noch mit
aber ich komm so trotzdem nicht weiter
ich würd gern ein array anlegen mit verschiedenen Rects:RECT r[40];und das dann in ner for-schleife füllen:
for(int i=0; i<40; i++) { r[i]={i, 40, 0, 0}; }wie krieg ich das dann hin?

-
r.left = i;
-
ja aber so gehts nich ganz
das müsst ja dann so aussehen:for(long i=0; i<10; i++) { r[i].left=i; r[i].top=40; r[i].right=0; r[i].bottom=0; }und so gehts nich?
-
wozu benutzt du rects, wenn du nur Punkte spiechert? hierführ gibts POINT
-
weil ich für folgende funktion ein zeiger auf ne rect struktur brauch:
RECT r; lpD3DFont->DrawText(NULL, "Text", -1, &r, DT_CENTER, TextColor);
-
es hat aber einen grund warum da rects erwartet werden.
Bei dir würde nicht mal was gezeichnet werden, da die Funktion den text in das rechteck clippt
-
warum zeichnet das dann nix?
wenn ich da einfach mehrere rechtecke mit dem gleichen text an verschiedenen positionen ausgeben wollte, müsste das doch so gehen?
-
weil dein rechteck eine negative größe hat?!
Mich würde es wundern, wenn da wirklich text erscheint.
-
asooo
du meinst das "-1" da drin oder?
das bedeutet nur dass der gesamte text ausgegeben wirdund gibts da jetzt überhaupt ne lösung wie ich mit hilfe der for-schleife so die werte reinkrieg?
-
was ich meine ist dein Rechteck:
left = i;
top = 40;
right = 0;
bottom = 0;-> höhe des rechtecks = bottom - top -> höhe = -40;
-> breite des Rechtecks = left - right -> breite = -i;
da die funktion den text in das rechteck clippt, welches eine negative breite und höhe hat, sollte nix gezeichnet werden.Warum füllst du das rechteck nicht mit:
for(long i=0; i<10; i++) { r[i].left = i; r[i].top = 40; r[i].right = r[i].left + MY_TEXT_MAX_WIDTH; r[i].bottom = r[i].top + MY_TEXT_MAX_HEIGHT; }
-
jaaaaaaaaaaaaa
das is genau das was ich gebraucht habe
vielen danke :D:D
-

Da bist du nicht von selbst drauf gekommen?
-
lol
-
rofl
-
he tut mir leid ich bin halt nich ganz so schlau
