Warum klappt das nicht in der MFC / RTF
-
Hi Leute ;),
im *ausgabeBuffer steht von oben nach unten das kleine 1X1 !
Result ist ein CString Array !
Ich wollte die Ausgabe auf dem RTF View so formattieren dass in 10 Spalten das 1 X 1 ausgegeben wird !
Also :
1.....2.....10
2.....4.......
3.....6.......
4.............
5.............
6.............
7.............
8.............
9.............
10.........100
aber egal was ich om Format anstelle es klappt einfach nicht es wird immer horizontal oder sonstwie ausgegeben nur nicht wie oben beschrieben !
Hier mal der Code:int *ausgabeBuffer; // Buffer zur Aufnahme des ErgebnisArrays CRichEditCtrl& rCtrl = GetRichEditCtrl(); CHARFORMAT cfm; rCtrl.SetSel (0,8); cfm.cbSize = sizeof(CHARFORMAT); cfm.dwMask = CFM_ITALIC; cfm.dwEffects = CFM_ITALIC; for (int k = 1; k <= 100;k++) { Result[k].Format("%i\n",ausgabeBuffer[k]); rCtrl.ReplaceSel(Result[k]); } rCtrl.SetSelectionCharFormat (cfm);In einer Konsolenanwendung funktionierts doch auch :
int *ausgabeBuffer; // Buffer zur Aufnahme des ErgebnisArrays ausgabeBuffer = calc.berechne (); for (int k = 1; k <= 100; k++) { cout << ausgabeBuffer[k] << "\t"; } cout << endl << endl << endl << endl << endl; return 0;Könnt ihr mir sagen wie ichs richtig machen muss ?

Vielen Dank für eure Hilfe
ShadowEater
-
Hi,
O.K. in der Konsole funktionierts wegen der Fensterbreite (Zufall)!!!
Aber wie mach ichs auf dem RTF ???
ShadowEater
-
Da mußt du vermutlich selber die Zeilenumbrüche dort reinsetzen, wo du sie benötigst (indem du in jedem zehnten Schleifendurchlauf ein '\n' an den Ausgabestring anhängst).
-
Hi,
danke für Deine Antwort.
O.K. jeder 10. Durchlauf heisst ich lass nen Counter int count beispielsweise mitlaufen, aber wie häng ich denn den Zeilenumbruch an ???
Ich find nix dazu echt net ?Danke für die Mühe
ShadowEater
-
Hi,
ich nehme an Du hast das so gemeint:int *ausgabeBuffer; // Buffer zur Aufnahme des ErgebnisArrays ausgabeBuffer = Calc.berechne (); int count = 0; CRichEditCtrl& rCtrl = GetRichEditCtrl(); CHARFORMAT cfm; rCtrl.SetSel (0,8); cfm.cbSize = sizeof(CHARFORMAT); cfm.dwMask = CFM_ITALIC; cfm.dwEffects = CFM_ITALIC; for (int k = 0; k <= 100;k++) { count++; Result[k].Format("%d",ausgabeBuffer[k]); rCtrl.ReplaceSel(Result[k]); if (count == 10) { :confused: :confused: :confused: :confused: :confused: :confused: } }Danke nochmal
SgadowEater

-
Hallo
/n steht für Zeilenumbruch.
chrische
-
Hi,
@chrische5
Ja klar...
int *ausgabeBuffer; // Buffer zur Aufnahme des ErgebnisArrays ausgabeBuffer = Calc.berechne (); int count = 0; CRichEditCtrl& rCtrl = GetRichEditCtrl(); CHARFORMAT cfm; rCtrl.SetSel (0,8); cfm.cbSize = sizeof(CHARFORMAT); cfm.dwMask = CFM_ITALIC; cfm.dwEffects = CFM_ITALIC; for (int k = 1; k <= 100;k++) { count++; Result[k].Format("%d\t",ausgabeBuffer[k]); rCtrl.ReplaceSel(Result[k]); if (count == 10) { rCtrl.ReplaceSel("\n"); count = 0; } }ich habs jetzt so gelöst, unglaublich dass das so einfach war, ich dachte wieder mal um 7 Ecken !!!
Danke euch

ShadowEater
-
Du kannst sogar den Zähler weglassen und deinen Array-Index als Kennung verwenden:
if(k%10==0)...
-
Hallo
Habe ich irgendwas überlesen, oder warum zwinkerst du mir zu?
chrische
-
Hi Chrissche,
hast Du mich gemeint mit dem zwinkern ?
war nix, einfach so !Shadoweater