Formatierung auslesen in einem CRichEditCtrl
-
Guten abend,
ich verzweifel gerade an dem Problem die Formatierung eines CRichEditCtrl auszulesen. Hier mein versuch:
CRichEditCtrl* edit = (CRichEditCtrl*) GetDlgItem(IDC_EMAIL_TEXT); CHARFORMAT cf; cf.cbSize = sizeof(CHARFORMAT); for(int i = 0; i < edit->GetTextLength(); i++) { edit->SetSel(i, edit->GetTextLength()); edit->SetFocus(); if(edit->GetSelectionCharFormat(cf) == CFM_ITALIC) {MessageBox("italic");} }
Alternativ dieses:
edit->GetSelectionCharFormat(cf); if(cf.dwMask == CFM_ITALIC) {MessageBox("italic");}
Es kommt nichts bei raus und im Forum habe ich auch nichts in die Richtung gefunden.
Danke im Voraus!
-
Inzwischen habe ich herausgefunden, dass ich Bitweise per & verknüpfen muss:
void CEMail::OnOK() { CRichEditCtrl* edit = (CRichEditCtrl*) GetDlgItem(IDC_EMAIL_TEXT); CHARFORMAT cf; cf.cbSize = sizeof(CHARFORMAT); for(int i = 0; i < edit->GetTextLength(); i++) { edit->SetSel(i, edit->GetTextLength()); edit->SetFocus(); edit->GetSelectionCharFormat(cf); if(cf.dwMask & CFM_ITALIC) {MessageBox("italic"); return;} } CDialog::OnOK(); }
Allerdings ist die Bedingung nun immer true. Hat jemand eine Idee warum?
Danke und Grüße!