CHARFORMAT2 und PARAFORMAT2
-
Hallo ihr,
naja, hab n Problem mit dem Formatieren in meinem RichEdit Text. Benutze dazu charformat2. Soweit echt kein Problem, einige Sachen klappen, aber andere komischerweise auch nicht.
CHARFORMAT2 Cfm; PARAFORMAT2 Pfm; m_ctrlAusgabeT.SetSel(0,7); //m_ctrlAusgabeT ist mVariable vom RTF Cfm.cbSize = sizeof(CHARFORMAT); Cfm.dwMask = CFM_BOLD | CFM_UNDERLINETYPE| CFM_COLOR; Cfm.dwEffects = CFE_BOLD; Cfm.bUnderlineType ^= CFU_UNDERLINEDOUBLE; Cfm.crTextColor = RGB(50,0,255); Pfm.cbSize = sizeof(PARAFORMAT); Pfm.dwMask = PFM_ALIGNMENT; Pfm.wAlignment = PFA_CENTER; m_ctrlAusgabeT.SetParaFormat(Pfm); m_ctrlAusgabeT.SetSelectionCharFormat(Cfm); //...
Das Ergebnis sieht so aus, dass alles so ausgegeben wird wie er soll, nur die doppelte Unterstreichung fehlt ....
woran kann das liegen?jetzt kurz noch ne Frage zu Paraformat2: Ich gebe die Überschrift zentriert aus(sieht man ja oben). Eine Zeile, die etwas später kommt, soll mit 'nem Punkt nummeriert werden:
//... m_ctrlAusgabeT.SetSel(13, 27); m_ctrlAusgabeT.GetParaFormat(Pfm); Pfm.cbSize = sizeof(PARAFORMAT); Pfm.dwMask = PFM_NUMBERING; Pfm.wNumbering ^= PFN_BULLET; m_ctrlAusgabeT.SetParaFormat(Pfm);
Es funktioniert wenigstens, aber trotzdem nicht so es soll
. Es wird jeder Zeile so ein "Bobbel" hinzugefügt. Ich hab mir weitere Funktionen angesehen und ausprobiert, aber entweder macht er gar nix oder setzt diese Bobbel. Wie kann ich es schreiben, dass er nur in dieser Zeile die Nummerierung setzt?
Wäre zutiefst dankbar, wenn ihr mir helfen könntet
Grüßle Kitty
-----------------------
Sorry, hatte mich verschrieben gehabt. Hab mich die Variablen jetzt richtig benannt
-
Hallo,
ne frage zu dein code die ersten beiden variablen heisen Cfm. die zweiten sollte aber Pfm heisen oder?MFG TaccoGo
-
Hab es oben grad nochmal abgeändert.
Sorry nochmals wegen dem Fehler. Hatte es aber bei mir im Code richtig stehen, hab mich nur hier verschrieben.
schon 'ne Idee was ich falsch mach?
-
Hallo,
vielleicht eine Idee... Du verwendest die CFM-Variable uninitialisiert.
Versuch malZeroMemory(&Cfm, sizeof(Cfm)); // Struktur auf 0 setzen Cfm.cbSize = sizeof(CHARFORMAT); Cfm.dwMask = CFM_BOLD | CFM_UNDERLINETYPE| CFM_COLOR; Cfm.dwEffects = CFE_BOLD; Cfm.bUnderlineType ^= CFU_UNDERLINEDOUBLE; // hier könnte der Fehler liegen, da Cfm.bUnderlineType irgendetwas enthält!
-
hatte ich auch schon ausprobiert, aber funzt au net ...
trotzdem danke