PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rich Edit Schreibschutz


protector2005
15.04.2005, 18:20
Hallo. Ich habe in mein Programm ein Rich Edit Textfeld eingerichtet und man kann ja im Dialogeditor auswählen, ob das Textfeld Schreibgeschützt sein soll oder nicht. Nun ich habe es eingeschaltet, aber mein Problem ist, dass ich z.B. in gewissen Situationen den Schreibschutz entfernen muss (zur Laufzeit), so dass man direkt Text eintragen kann. Wie mache ich das am Besten für C++ und MFC???
Ich habe mal in der WINAPI nachgeschaut und habe Funktionen mit EN_PROTECTED gefunden, wonach man eine Meldung damit an das RichEdit senden soll. Ich komme aber nicht ganz dahinter, wie man den Code zum Laufen bringen soll. Gegooogelt habe ich auch schon, aber nichts wirkliches gefunden.... ich hoffe ihr könnt mir helfen :confused:


Diabolo
15.04.2005, 23:42
Ich kenne diesen Befehl nicht, vermute aber daß Du das über 'SendMessage' erledigst und daraus resultierend würde ich sagen daß 'wParam' dann 0 bzw. 1 ist, je nachdem ob es ge- oder entsperrt werden soll.

Diogenes
16.04.2005, 10:30
Beim Erzeugen des Fensters wird wohl der Stil es_ReadOnly gesetzt. Du müßtest dieses Flag aus dem Stil entfernen. Aber wie das geht, weiß ich leider auch nicht :o . Vielleicht weiß einer der anderen hier was.

protector2005
16.04.2005, 10:48
Schaut mal auf den folgenden Link unter Notifications, dort ist das Flag EN_PROTECTED aufgeführt:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/RichEdit/RichEditControls.asp

Dort wird gesagt, dass wenn auf ein schreibgeschütztes Textfeld geschrieben wird, dass dann eine WM_NOTIFY Message gibt und man selbst bestimmten kann, was nun passiert. Aber meine Frage ist jetzt wie ich das mache mit dem WM_NOTIFY - hab da nicht so viel Erfahrung mit.
Ich denke bin ein ganzes Stück vom Verständnis weiter gekommen, nur helft mir bei der WM_NOTIFY Message weiter :(