000
13.05.2005, 15:58 Uhr
RedEagle
|
Hi Ich möchte gerne, wenn jemand in meinem RichEdit-Feld ein ä;ö;ü;Ä;Ö;Ü;ß eingibt, das diese dann Farblich gekenzeichnet werden.
meine Funktion bis jetzt:
| C++: |
void SHL::HighlightChar(char Zeichen) { CHARRANGE crCurrent; SendMessage(this->RichEdithWnd,EM_GETSEL,(LPARAM)&crCurrent.cpMin,(WPARAM)&crCurrent.cpMax); SendMessage(this->RichEdithWnd,EM_HIDESELECTION,1,0); if(ProfeForChar(Zeichen)) { SendMessage(this->RichEdithWnd, EM_SETSEL, crCurrent.cpMin, crCurrent.cpMax); SendMessage(this->RichEdithWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfChars); } else { SendMessage(this->RichEdithWnd, EM_SETSEL, crCurrent.cpMin, crCurrent.cpMax); SendMessage(this->RichEdithWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfDefault); } SendMessage(this->RichEdithWnd,EM_SETSEL,crCurrent.cpMin,crCurrent.cpMax); SendMessage(this->RichEdithWnd,EM_HIDESELECTION,0,0); }
|
Ich rufe die Funktion bei WM_CHAR auf:
| C++: |
case WM_CHAR: test.HighlightChar((char)wParam); break;
|
Mein Problem: Es wird immer nur das Zuletzt eingegeben ä;ö;usw.. farbig gemacht, und die, die ich z.B. dafor eingegeben habe, werden wieder "normal" dargestellt.
Was mache ich falsch?? -- MFG RedEagle |