Freigeben über


Bearbeiten von Steuerelementtextvorgängen

Das System verarbeitet automatisch alle vom Benutzer initiierten Textvorgänge und benachrichtigt die Anwendung, wenn die Vorgänge abgeschlossen sind.

In den folgenden Themen werden vom Benutzer initiierte Textvorgänge und die Antwort der Anwendung erläutert:

Auswählen eines Bearbeitungssteuerelements

Der Benutzer kann ein Bearbeitungssteuerelement auswählen, indem er mit der Maus darauf klickt oder die TAB-TASTE drückt, um zu dem Steuerelement zu gelangen. Die Tabbingmethode ist Teil einer vordefinierten Tastaturschnittstelle, die das System bereitstellt. Eine vollständige Beschreibung dieser Schnittstelle finden Sie unter Dialogfelder. Wenn der Benutzer ein Bearbeitungssteuerelement auswählt, gibt das System dem Steuerelement den Tastaturfokus (siehe "Tastaturfokus und Aktivierung" in Über Tastatureingaben) und hebt den Text mithilfe eines umgekehrten Videos hervor.

Festlegen und Abrufen von Text

Eine Anwendung kann den Text eines Bearbeitungssteuerelements mithilfe der SetWindowText--Funktion, der SetDlgItemText--Funktion oder durch Senden des Steuerelements eine WM_SETTEXT Nachricht festlegen.

Um den gesamten Text aus einem Bearbeitungssteuerelement abzurufen, verwenden Sie zuerst die GetWindowTextLength--Funktion oder die WM_GETTEXTLENGTH Nachricht, um die Größe des Puffers zu bestimmen, der für den Text erforderlich ist. Rufen Sie als Nächstes den Text mithilfe der GetWindowText--Funktion, der GetDlgItemText--Funktion oder der WM_GETTEXT Nachricht ab.

Markieren von Text

Nach dem Auswählen eines Bearbeitungssteuerelements kann der Benutzer Text im Steuerelement mithilfe der Maus oder der Tastatur markieren. Eine Anwendung kann die Anfangs- und Endzeichenpositionen der aktuellen Auswahl in einem Bearbeitungssteuerelement abrufen, indem das Steuerelement eine EM_GETSEL Nachricht gesendet wird. Der Rückgabewert für die Endposition ist ein Größer als das letzte Zeichen in der Auswahl (d. a. die Position des ersten Zeichens nach dem letzten ausgewählten Zeichen).

Eine Anwendung kann text in einem Bearbeitungssteuerelement auch markieren, indem das Steuerelement eine EM_SETSEL Nachricht mit den Anfangs- und Endzeichenindizes für die Auswahl gesendet wird. Beispielsweise kann die Anwendung EM_SETSEL mit EM_REPLACESEL verwenden, um Text aus einem Bearbeitungssteuerelement zu löschen.

Diese drei Nachrichten gelten sowohl für einzeilige als auch für mehrzeilige Bearbeitungssteuerelemente.

Ersetzen von Text

Eine Anwendung kann markierten Text in einem Bearbeitungssteuerelement ersetzen, indem das Steuerelement eine EM_REPLACESEL Nachricht mit einem Zeiger auf den Ersetzungstext sendet. Wenn keine aktuelle Markierung vorhanden ist, fügt EM_REPLACESEL den Ersetzungstext an der Einfügemarke ein. Die Anwendung erhält möglicherweise einen EN_ERRSPACE Benachrichtigungscode, wenn der Ersetzungstext den verfügbaren Arbeitsspeicher überschreitet. Diese Meldung gilt sowohl für einzeilige als auch für mehrzeilige Bearbeitungssteuerelemente.

Eine Anwendung kann EM_REPLACESEL verwenden, um einen Teil des Texts eines Bearbeitungssteuerelements oder die SetDlgItemText- Funktion zu ersetzen, um alles zu ersetzen.

Ändern der schriftart, die von einem Bearbeitungssteuerelement verwendet wird

Eine Anwendung kann die Schriftart ändern, die ein Bearbeitungssteuerelement verwendet, indem die WM_SETFONT Nachricht gesendet wird. Die meisten Anwendungen tun dies beim Verarbeiten der WM_INITDIALOG Nachricht. Das Ändern der Schriftart ändert nicht den Schriftgrad des Bearbeitungssteuerelements. Anwendungen, die die WM_SETFONT Nachricht senden, müssen möglicherweise die Schriftartmetriken für den Text abrufen und die Größe des Bearbeitungssteuerelements neu berechnen. Weitere Informationen zu Schriftarten und Schriftartmetriken finden Sie unter Schriftarten und Text.

Ausschneiden von Einfüge- und Löschvorgängen

Es gibt vier Nachrichten zum Verschieben von Text zwischen einem Bearbeitungssteuerelement und der Zwischenablage. Die WM_COPY Nachricht kopiert die aktuelle Auswahl (falls vorhanden) aus einem Bearbeitungssteuerelement in die Zwischenablage, ohne sie aus dem Bearbeitungssteuerelement zu löschen. Die WM_CUT Nachricht löscht die aktuelle Auswahl (sofern vorhanden) im Bearbeitungssteuerelement und kopiert den gelöschten Text in die Zwischenablage. Die WM_CLEAR Nachricht löscht die aktuelle Auswahl (sofern vorhanden) aus einem Bearbeitungssteuerelement, kopiert sie jedoch nicht in die Zwischenablage (es sei denn, der Benutzer hat die UMSCHALTTASTE gedrückt). Die WM_PASTE Nachricht kopiert Text aus der Zwischenablage an der Einfügemarke in ein Bearbeitungssteuerelement. Diese vier Nachrichten gelten sowohl für einzeilige als auch für mehrzeilige Bearbeitungssteuerelemente.

Microsoft Windows NT 4.0 und höher: Ein Bearbeitungssteuerelement enthält ein integriertes Kontextmenü, das dem Benutzer das Verschieben von Text zwischen dem Bearbeitungssteuerelement und der Zwischenablage erleichtert. Das Kontextmenü wird angezeigt, wenn der Benutzer mit der rechten Maustaste auf das Steuerelement klickt. Die Befehle im Kontextmenü umfassen Rückgängig, Ausschneiden, Kopieren, Einfügen, Löschenund Alleauswählen .

Ändern von Text

Der Benutzer kann Text in einem Bearbeitungssteuerelement auswählen, löschen oder verschieben. Das System verwaltet ein internes Flag für jedes Bearbeitungssteuerelement, das angibt, ob der Inhalt des Steuerelements geändert wurde. Das System löscht dieses Kennzeichen, wenn es das Steuerelement erstellt, und legt die Kennzeichnung fest, wenn der Text im Steuerelement geändert wird. Eine Anwendung kann das Änderungskennzeichnung abrufen, indem das Steuerelement eine EM_GETMODIFY Nachricht gesendet wird. Die Anwendung kann dann das Änderungsflagge festlegen oder löschen, indem das Steuerelement eine EM_SETMODIFY Nachricht gesendet wird. Diese Nachrichten gelten sowohl für einzeilige als auch für mehrzeilige Bearbeitungssteuerelemente.

Einschränken von vom Benutzer eingegebenen Text

Der Standardgrenzwert für die Textmenge, die ein Benutzer in ein Bearbeitungssteuerelement eingeben kann, beträgt 32 KB. Eine Anwendung kann den Standardgrenzwert ändern, indem das Steuerelement eine EM_SETLIMITTEXT Nachricht gesendet wird. Diese Nachricht legt eine harte Grenze auf die Anzahl der Bytes fest, die der Benutzer in ein Bearbeitungssteuerelement eingeben kann, wirkt sich jedoch weder auf Text aus, der bereits im Steuerelement enthalten ist, als die Nachricht gesendet wurde, noch Text, der vom SetDlgItemText Funktion oder der WM_SETTEXT Nachricht in das Steuerelement kopiert wurde. Angenommen, die Anwendung verwendet die SetDlgItemText- Funktion, um 500 Bytes in einem Bearbeitungssteuerelement zu platzieren, und der Benutzer gibt auch 500 Bytes ein (insgesamt 1.000 Bytes). Wenn die Anwendung dann eine EM_SETLIMITTEXT Nachricht sendet, die vom Benutzer eingegebenen Text auf 300 Bytes beschränkt, bleiben die 1.000 Bytes, die bereits im Bearbeitungssteuerelement enthalten sind, dort, und der Benutzer kann keinen weiteren Text hinzufügen. Wenn die Anwendung hingegen eine EM_SETLIMITTEXT Nachricht sendet, die den vom Benutzer eingegebenen Text auf 1.300 Bytes beschränkt, bleiben die 1.000 Bytes erhalten, aber der Benutzer kann 300 weitere Bytes hinzufügen.

Wenn der Benutzer die Zeichengrenze eines Bearbeitungssteuerelements erreicht, sendet das System der Anwendung eine WM_COMMAND Nachricht, die einen EN_MAXTEXT Benachrichtigungscode enthält. Dieser Benachrichtigungscode bedeutet nicht, dass der Arbeitsspeicher erschöpft ist, sondern dass der Grenzwert für vom Benutzer eingegebenen Text erreicht wurde; Der Benutzer kann keinen weiteren Text eingeben. Um diesen Grenzwert zu ändern, muss eine Anwendung das Steuerelement eine neue EM_SETLIMITTEXT Nachricht mit einem höheren Grenzwert senden.

Nehmen wir als Beispiel für die Verwendung von EM_SETLIMITTEXT und EN_MAXTEXTan, dass die Anwendung den Benutzer auf maximal vier Zeichen in einem Bearbeitungssteuerelement beschränken muss. Die Anwendung würde EM_SETLIMITTEXT verwenden, um einen Grenzwert von vier Zeichen anzugeben. Wenn der Benutzer versucht hat, ein fünftes Zeichen einzugeben, sendet das System einen EN_MAXTEXT Benachrichtigungscode an die Anwendung.

Zeichen- und Zeilenvorgänge

Es gibt mehrere Nachrichten, die Informationen zu den Zeichen und Zeilen in einem Bearbeitungssteuerelement zurückgeben. Die meisten Nachrichten geben einen Index zurück, in der Regel eine nullbasierte Zahl, um auf ein Zeichen oder eine Zeile zu verweisen. In einem einzeiligen Bearbeitungssteuerelement, das n Zeichen enthält, ist der Zeilenindex null, und die Zeichen werden von Null bis n-1 indiziert. In einem mehrteiligen Bearbeitungssteuerelement, das M-Zeilen und n-Zeichen enthält, werden die Zeilen von 0 bis m-1 indiziert, und die Zeichen werden von Null bis n-1 indiziert. Beachten Sie, dass die Zeichenindizierung Zeilenumbrüche ignoriert.

Eine Anwendung kann die Anzahl der Zeichen in einem Bearbeitungssteuerelement bestimmen, indem die WM_GETTEXTLENGTH Nachricht an das Bearbeitungssteuerelement gesendet wird. Diese Nachricht gibt die Länge des Texts in Zeichen (ohne das endende Nullzeichen) in einem einzeiligen oder mehrzeiligen Bearbeitungssteuerelement zurück. Die EM_LINELENGTH Nachricht gibt die Länge einer Zeile in Zeichen zurück, die durch den Zeichenindex eines Zeichens in der Zeile angegeben wird. Die zurückgegebene Länge enthält keine ausgewählten Zeichen. Eine Anwendung kann diese Nachrichten in einem einzeiligen oder mehrzeiligen Bearbeitungssteuerelement verwenden.

Die EM_GETFIRSTVISIBLELINE Nachricht gibt den nullbasierten Index der obersten sichtbaren Zeile in einem mehrzeiligen Bearbeitungssteuerelement oder den nullbasierten Index des ersten sichtbaren Zeichens in einem einzeiligen Bearbeitungssteuerelement zurück. Eine Anwendung kann eine Zeile aus einem Bearbeitungssteuerelement in einen Puffer kopieren, indem die EM_GETLINE Nachricht an das Bearbeitungssteuerelement gesendet wird. Die Zeile wird durch den Zeilenindex angegeben, und das erste Wort des Empfangenden Puffers enthält die maximale Anzahl von Bytes, die in den Puffer kopiert werden sollen. Der Rückgabewert ist die Anzahl der kopierten Bytes. Diese Nachricht kann auch in einem einzeiligen oder mehrzeiligen Bearbeitungssteuerelement verwendet werden.

Es stehen eindeutige Nachrichten zur Verfügung, um die Informationen zu einer Zeile in einem mehrzeiligen Bearbeitungssteuerelement zurückzugeben. Die EM_GETLINECOUNT Nachricht gibt die Anzahl der Zeilen in einem Bearbeitungssteuerelement zurück. Die EM_LINEFROMCHAR Nachricht gibt den Index der Zeile zurück, die einen angegebenen Zeichenindex enthält. Die EM_LINEINDEX Nachricht gibt den Index des ersten Zeichens in einer angegebenen Zeile zurück.

Scrollen von Text in einem Bearbeitungssteuerelement

Zum Implementieren des Bildlaufs in einem Bearbeitungssteuerelement können Sie die in Bearbeitung von Steuerelementtypen und Formatvorlagenbeschriebenen automatischen Bildlaufformatvorlagen verwenden oder dem Bearbeitungssteuerelement explizit Bildlaufleisten hinzufügen. Um eine horizontale Bildlaufleiste hinzuzufügen, verwenden Sie die Formatvorlage WS_HSCROLL; um eine vertikale Bildlaufleiste hinzuzufügen, verwenden Sie die Formatvorlage WS_VSCROLL. Ein Bearbeitungssteuerelement mit Bildlaufleisten verarbeitet eigene Bildlaufleistenmeldungen. Ausführliche Informationen zum Hinzufügen von Bildlaufleisten zum Bearbeiten von Steuerelementen finden Sie unter Bildlaufleisten.

Das System stellt drei Meldungen bereit, die eine Anwendung mit Bildlaufleisten an ein Bearbeitungssteuerelement senden kann. Die EM_LINESCROLL Nachricht kann ein mehrteiliges Bearbeitungssteuerelement vertikal und horizontal scrollen.The EM_LINESCROLL message can scroll a multiline edit control both vertically and horizontally. Der parameter lParam gibt die Anzahl der Zeilen an, die vertikal von der aktuellen Zeile scrollen sollen, und der wParam Parameter gibt die Anzahl der Zeichen an, die horizontal scrollen sollen, beginnend mit dem aktuellen Zeichen. Das Bearbeitungssteuerelement erkennt keine horizontalen Bildlaufnachrichten an, wenn es über das ES_CENTER oder ES_RIGHT Format verfügt. Die EM_LINESCROLL Nachricht gilt nur für mehrlineline Bearbeitungssteuerelemente.

Die EM_SCROLL Nachricht führt einen vertikalen Bildlauf durch ein mehrteiliges Bearbeitungssteuerelement durch. Der wParam--Parameter gibt die Bildlaufaktion an. Die EM_SCROLL Nachricht gilt nur für mehrlineline Bearbeitungssteuerelemente. EM_SCROLL hat dieselbe Auswirkung wie die WM_VSCROLL Nachricht.

Die EM_SCROLLCARET Nachricht scrollt das Caret in einem Bearbeitungssteuerelement in der Ansicht.

Festlegen von Tabstopps und Seitenrändern

Eine Anwendung kann Tabstopps in einem mehrstufigen Bearbeitungssteuerelement mithilfe der EM_SETTABSTOPS Nachricht festlegen. (Der Standardwert für einen Tabstopp ist acht Zeichen.) Wenn eine Anwendung dem Bearbeitungssteuerelement Text hinzufügt, generieren Tabstoppzeichen im Text automatisch platz bis zum nächsten Tabstopp. Die EM_SETTABSTOPS Nachricht bewirkt nicht automatisch, dass das System den Text neu zeichnet. Dazu kann eine Anwendung die funktion InvalidateRect aufrufen. Die EM_SETTABSTOPS Nachricht gilt nur für mehrlineline Bearbeitungssteuerelemente.

Eine Anwendung kann die Breite der linken und rechten Seitenränder für ein Bearbeitungssteuerelement mithilfe der EM_SETMARGINS Nachricht festlegen. Nach dem Senden dieser Nachricht wird das Bearbeitungssteuerelement vom System neu gezeichnet, um die neuen Randeinstellungen widerzuspiegeln. Eine Anwendung kann die Breite des linken oder rechten Rands abrufen, indem die EM_GETMARGINS Nachricht gesendet wird. Standardmäßig werden die Ränder des Bearbeitungssteuerelements nur breit genug festgelegt, um den größten horizontalen Überhang (negative ABC-Breite) für die aktuelle Schriftart, die im Bearbeitungssteuerelement verwendet wird, aufzunehmen.

Verbergen von Benutzereingaben

Eine Anwendung kann ein Kennwortzeichen in einem Bearbeitungssteuerelement verwenden, um Benutzereingaben zu verbergen. Wenn ein Kennwortzeichen festgelegt wird, wird es anstelle jedes Zeichens angezeigt, das der Benutzer eingibt. Wenn ein Kennwortzeichen entfernt wird, zeigt das Steuerelement die Zeichen an, die der Benutzer eingibt. Wenn die Anwendung ein einzeiliges Bearbeitungssteuerelement mithilfe der Formatvorlage ES_PASSWORDerstellt, ist das Standardkennwortzeichen ein Sternchen (*). Eine Anwendung kann die EM_SETPASSWORDCHAR Nachricht verwenden, um ein anderes Kennwortzeichen und die EM_GETPASSWORDCHAR Nachricht zum Abrufen des aktuellen Kennwortzeichens zu entfernen oder zu definieren. Diese Nachrichten gelten nur für einzeilige Bearbeitungssteuerelemente.

Verwenden von Ganzzahlen

Es gibt zwei Ganzzahlkonvertierungsfunktionen für Bearbeitungssteuerelemente, die nur Zahlen enthalten sollen. Die SetDlgItemInt--Funktion erstellt die Zeichenfolgendarstellung einer angegebenen ganzzahligen Zahl (signiert oder nicht signiert) und sendet die Zeichenfolge an ein Bearbeitungssteuerelement. SetDlgItemInt gibt keinen Wert zurück. Die GetDlgItemInt--Funktion erstellt eine ganze Zahl (signiert oder nicht signiert) aus der Zeichenfolgendarstellung in einem Bearbeitungssteuerelement. GetDlgItemInt die ganze Zahl (oder einen Fehlerwert) zurück.

Rückgängigmachen von Textvorgängen

Jedes Bearbeitungssteuerelement verwaltet ein Rückgängig-Flag, das angibt, ob eine Anwendung den letzten Vorgang im Bearbeitungssteuerelement rückgängig machen kann (z. B. Rückgängigmachen eines Textlöschvorgangs). Das Bearbeitungssteuerelement legt das Rückgängig-Flag fest, um anzugeben, dass der Vorgang rückgängig gemacht werden kann, und setzt es zurück, um anzugeben, dass der Vorgang nicht rückgängig gemacht werden kann. Eine Anwendung kann die Einstellung des Rückgängig-Flags bestimmen, indem das Steuerelement eine EM_CANUNDO Nachricht gesendet wird.

Eine Anwendung kann den letzten Vorgang rückgängigmachen, indem das Steuerelement eine EM_UNDO Nachricht gesendet wird. Ein Vorgang kann rückgängig gemacht werden, wenn kein anderer Bearbeitungssteuerungsvorgang ausgeführt wird. Beispielsweise kann der Benutzer Text löschen, den Text ersetzen (den Löschvorgang rückgängigmachen) und dann den Text erneut löschen (Den Ersetzung rückgängigmachen). Die EM_UNDO Nachricht gilt sowohl für einzeilige als auch für mehrzeilige Bearbeitungssteuerelemente und funktioniert immer für Einzelzeilenbearbeitungssteuerelemente.

Eine Anwendung kann das Rückgängig-Kennzeichen eines Bearbeitungssteuerelements zurücksetzen, indem das Steuerelement eine EM_EMPTYUNDOBUFFER Nachricht gesendet wird. Das System setzt das Rückgängig-Kennzeichen automatisch zurück, wenn ein Bearbeitungssteuerelement eine EM_SETHANDLE oder WM_SETTEXT Nachricht empfängt. Die SetDlgItemText--Funktion sendet eine WM_SETTEXT Nachricht.

Behandeln von Wordwrap- und Zeilenumbrüchen

Eine Anwendung kann Wordwrap-Funktionen mit mehrzeiligen Bearbeitungssteuerelementen verwenden, um das Wort oder Wortfragment zu finden, das in die nächste Zeile eingeschlossen werden soll. Mit der vom System bereitgestellten Standardfunktion "Wordwrap" enden Zeilen immer an den Leerzeichen zwischen Wörtern. Eine Anwendung kann eine eigene Wordwrap-Funktion angeben, indem eine EditWordBreakProc- Wordwrap-Funktion bereitgestellt und das Bearbeitungssteuerelement eine EM_SETWORDBREAKPROC Nachricht gesendet wird. Eine Anwendung kann die Adresse der aktuellen Wordwrap-Funktion abrufen, indem das Steuerelement eine EM_GETWORDBREAKPROC Nachricht gesendet wird.

Eine Anwendung kann ein mehrzeiliges Bearbeitungssteuerelement leiten, um ein Weiches Zeilenumbruchzeichen (zwei Wagenrücklauf und einen Zeilenvorschub) automatisch am Ende umgebrochener Textzeilen hinzuzufügen oder zu entfernen. Eine Anwendung kann dieses Feature aktivieren oder deaktivieren, indem das Bearbeitungssteuerelement eine EM_FMTLINES Nachricht gesendet wird. Diese Nachricht gilt nur für mehrzeilige Bearbeitungssteuerelemente und wirkt sich nicht auf eine Zeile aus, die mit einem Harten Zeilenumbruch endet (ein Wagenrücklauf und ein vom Benutzer eingegebener Zeilenfeed). Auch in mehrlinienübergreifenden Bearbeitungssteuerelementen kann eine Anwendung die ES_WANTRETURN Format angeben, um anzufordern, dass das System einen Wagenrücklauf einfügt, wenn der Benutzer die EINGABETASTE im Bearbeitungssteuerelement drückt.

Abrufen von Punkten und Zeichen

Um das Zeichen zu bestimmen, das einem bestimmten Punkt im Clientbereich eines Bearbeitungssteuerelements am nächsten kommt, senden Sie die EM_CHARFROMPOS Nachricht an das Steuerelement. Die Nachricht gibt den Zeichenindex und den Zeilenindex des Zeichens zurück, das dem Punkt am nächsten ist. Ebenso können Sie die Clientbereichskoordinaten eines angegebenen Zeichens abrufen, indem Sie die EM_POSFROMCHAR Nachricht senden. Die Nachricht gibt die x- und y-Koordinaten der oberen linken Ecke des angegebenen Zeichens zurück.

AutoVervollständigen von Zeichenfolgen

AutoVervollständigen erweitert Zeichenfolgen, die teilweise in ein Bearbeitungssteuerelement eingegeben wurden, in vollständige Zeichenfolgen. Wenn ein Benutzer beispielsweise beginnt, eine URL in das Adressbearbeitungssteuerelement einzugeben, das in die Windows Internet Explorer-Symbolleiste eingebettet ist, erweitert autoVervollständigen die Zeichenfolge in mindestens eine vollständige URLs, die mit der vorhandenen Teilzeichenfolge konsistent sind. Eine partielle URL-Zeichenfolge wie "mic" kann auf "https://www.microsoft.com"erweitert werden; oder "https://www.microsoft.com/windows". AutoVervollständigen wird in der Regel mit Bearbeitungssteuerelementen oder Steuerelementen verwendet, die über ein eingebettetes Bearbeitungssteuerelement verfügen.

Weitere Informationen finden Sie in der IAutoComplete- und IAutoComplete2 Schnittstellendokumentation.

Komplexes Skript in Bearbeitungssteuerelementen

Ein komplexes Skript ist eine Sprache, deren gedruckte Form nicht einfach angeordnet ist. Ein komplexes Skript kann z. B. bidirektionales Rendering, kontextbezogene Gestaltung von Glyphen oder kombinierende Zeichen zulassen. Die Standardmäßigen Bearbeitungssteuerelemente wurden erweitert, um mehrsprachigen Text und komplexe Skripts zu unterstützen. Dazu gehören nicht nur Eingaben und Anzeige, sondern auch die richtige Cursorbewegung über Zeichencluster (z. B. in Thai- und Devanagari-Skript).

Eine gut geschriebene Anwendung erhält diese Unterstützung automatisch, ohne Änderung. Auch hier sollten Sie die Unterstützung für die Leserichtung von rechts nach links und für die rechtsbündige Ausrichtung in Betracht ziehen. Deaktivieren Sie in diesem Fall die erweiterten Formatvorlagenkennzeichnungen des Bearbeitungssteuerelementfensters, um diese Attribute zu steuern, wie im folgenden Beispiel gezeigt.

// ID_EDITCONTROL is the control ID in the resource file.
HANDLE hWndEdit = GetDlgItem(hDlg, ID_EDITCONTROL);
LONG lAlign = GetWindowLong(hWndEdit, GWL_EXSTYLE) ;

// To toggle alignment
lAlign ^= WS_EX_RIGHT ;

// To toggle reading order
lAlign ^= WS_EX_RTLREADING ;

Nachdem Sie den wert lAlign festgelegt haben, aktivieren Sie die neue Anzeige, indem Sie die erweiterte Formatvorlage des Bearbeitungssteuerelementfensters wie folgt festlegen.

// This assumes your edit control is in a dialog box. If not, 
// get the edit control handle from another source.

SetWindowLong(hWndEdit, GWL_EXSTYLE, lAlign);
InvalidateRect(hWndEdit, NULL, FALSE);

Uniscribe ist ein weiterer Satz von Funktionen, die eine feine Kontrolle für die Verarbeitung komplexer Skripts bieten. Weitere Informationen finden Sie unter Uniscribe.