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 behandelt:

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 ihm zu wechseln. Die Tabbing-Methode 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 Informationen zur Tastatureingabe)und hebt dessen Text mithilfe von 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 einer WM _ SETTEXT-Nachricht an das Steuerelement festlegen.

Um den gesamten Text aus einem Bearbeitungssteuerelement abzurufen, verwenden Sie zunächst die GetWindowTextLength-Funktion oder die WM _ GETTEXTLENGTH-Nachricht, um die Größe des Puffers zu bestimmen, der für den Text benötigt wird. Rufen Sie als Nächstes den Text mithilfe der GetWindowText-Funktion, der GetDlgItemText-Funktion oder der WM _ GETTEXT-Nachricht ab.

Auswählen von Text

Nach dem Auswählen eines Bearbeitungssteuerelements kann der Benutzer Text im Steuerelement mit der Maus oder der Tastatur auswählen. Eine Anwendung kann die Anfangs- und Endzeichenpositionen der aktuellen Auswahl in einem Bearbeitungssteuerelement abrufen, indem sie dem Steuerelement eine EM _ GETSEL-Nachricht sendet. Der Rückgabewert für die Endposition ist größer als das letzte Zeichen in der Auswahl (d. b. die Position des ersten Zeichens nach dem letzten ausgewählten Zeichen).

Eine Anwendung kann auch Text in einem Bearbeitungssteuerelement auswählen, indem sie dem Steuerelement eine EM _ SETSEL-Nachricht mit den Anfangs- und Endzeichenindizes für die Auswahl sendet. Beispielsweise kann die Anwendung EM _ SETSEL mit EM _ REPLACESEL verwenden, um Text aus einem Bearbeitungssteuerelement zu löschen.

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

Ersetzen von Text

Eine Anwendung kann ausgewählten Text in einem Bearbeitungssteuerelement ersetzen, indem sie dem Steuerelement eine EM _ REPLACESEL-Nachricht mit einem Zeiger auf den Ersetzungstext sendet. Wenn keine aktuelle Auswahl 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 von einem Bearbeitungssteuerelement verwendeten Schriftart

Eine Anwendung kann die Schriftart ändern, die ein Bearbeitungssteuerelement verwendet, indem die WM _ SETFONT-Nachricht gesendet wird. Die meisten Anwendungen tun dies bei der Verarbeitung der WM _ INITDIALOG-Nachricht. Durch das Ändern der Schriftart wird die Größe des Bearbeitungssteuerelements nicht geändert. -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 Kopier-Einfüge- und Clear-Vorgängen

Es gibt vier Meldungen 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-Meldung 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-Meldung kopiert Text aus der Zwischenablage in ein Bearbeitungssteuerelement an der Einfügemarke. Diese vier Meldungen 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. Zu den Befehlen im Kontextmenü gehören Rückgängig, Ausschneiden, Kopieren, Einfügen, Löschen und Alle auswä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 Flag beim Erstellen des Steuerelements und legt es fest, wenn der Text im Steuerelement geändert wird. Eine Anwendung kann das Änderungsflag abrufen, indem sie dem Steuerelement eine EM _ GETMODIFY-Nachricht sendet. Die Anwendung kann dann das Änderungsflag festlegen oder deaktivieren, indem sie dem Steuerelement eine EM _ SETMODIFY-Nachricht sendet. Diese Meldungen 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 sie dem Steuerelement eine EM _ SETLIMITTEXT-Nachricht sendet. Diese Meldung legt eine harte Grenze für die Anzahl von Bytes fest, die der Benutzer in ein Bearbeitungssteuerelement eingeben kann, wirkt sich jedoch weder auf Text aus, der sich bereits im Steuerelement befindet, als die Nachricht gesendet wurde, noch auf Text, der von der 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 (insgesamt 1.000 Bytes) ein. Wenn die Anwendung dann eine EM _ SETLIMITTEXT-Nachricht sendet, die den vom Benutzer eingegebenen Text auf 300 Bytes beschränkt, bleiben die 1.000 Bytes, die sich bereits im Bearbeitungssteuerelement befanden, dort, und der Benutzer kann keinen weiteren Text hinzufügen. Wenn die Anwendung dagegen 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 mit einem EN MAXTEXT-Benachrichtigungscode. _ 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 dem Steuerelement eine neue EM _ SETLIMITTEXT-Nachricht mit einem höheren Grenzwert senden.

Als Beispiel für die Verwendung von EM _ SETLIMITTEXT und EN _ MAXTEXTwird angenommen, dass die Anwendung den Benutzer auf maximal vier Zeichen in einem Bearbeitungssteuerelement beschränken muss. Die Anwendung verwendet EM _ SETLIMITTEXT, 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 Meldungen, 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 beispielsweise 0 (null), und die Zeichen werden von 0 bis n-1 indiziert. In einem mehrzeiligen Bearbeitungssteuerelement, das m Zeilen und n Zeichen enthält, werden die Zeilen von 0 bis m-1 indiziert, und die Zeichen werden von 0 bis n-1 indiziert. Beachten Sie, dass die Zeichenindizierung Zeilenumbrüche ignoriert.

Eine Anwendung kann die Anzahl der Zeichen in einem Bearbeitungssteuerelement ermitteln, indem die WM _ GETTEXTLENGTH-Nachricht an das Bearbeitungssteuerelement gesendet wird. Diese Meldung gibt die Länge des Texts in einem einzeiligen oder mehrzeiligen Bearbeitungssteuerelement in Zeichen (ohne abschließendes NULL-Zeichen) 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 ihren 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 Meldung kann auch in einem einzeiligen oder mehrzeiligen Bearbeitungssteuerelement verwendet werden.

Es sind eindeutige Meldungen verfügbar, 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 Bearbeitungssteuerfeld

Um scrollen in einem Bearbeitungssteuerfeld zu implementieren, können Sie die automatischen Bildlaufstile verwenden, die unter Bearbeiten von Steuerelementtypenund -stilen erläutert werden, oder Sie können dem Bearbeitungssteuerfeld explizit Bildlaufleisten hinzufügen. Um eine horizontale Scrollleiste hinzuzufügen, verwenden Sie das Format WS HSCROLL. Verwenden Sie zum Hinzufügen einer vertikalen Scrollleiste das Format _ WS _ VSCROLL. Ein Bearbeitungssteuerfeld mit Bildlaufleisten verarbeitet eigene Bildlaufleistenmeldungen. Ausführliche Informationen zum Hinzufügen von Scrollleisten zum Bearbeiten von Steuerelementen finden Sie unter Scrollleisten.

Das System bietet drei Nachrichten, die eine Anwendung an ein Bearbeitungssteuerfeld mit Bildlaufleisten senden kann. Die MELDUNG EM _ LINESCROLL kann in einem mehrzeigen Bearbeitungssteuerfeld sowohl vertikal als auch horizontal scrollen. Der lParam-Parameter gibt die Anzahl der Zeilen an, die beginnend mit der aktuellen Zeile vertikal gescrollt werden, und der wParam-Parameter gibt die Anzahl der Zeichen an, die horizontal gescrollt werden, beginnend mit dem aktuellen Zeichen. Das Bearbeitungssteuerfeld bestätigt keine horizontalen Bildlaufnachrichten, wenn es den Stil ES _ CENTER oder ES _ RIGHT hat. Die MELDUNG EM _ LINESCROLL gilt nur für Mehrzeilen-Bearbeitungssteuerelemente.

Die EM _ SCROLL-Meldung führt einen vertikalen Bildlauf für ein mehrstufiges Bearbeitungssteuerfeld durch. Der wParam-Parameter gibt die Scrollaktion an. Die EM _ SCROLL-Meldung gilt nur für mehrline-Bearbeitungssteuerelemente. EM _ SCROLL hat die gleiche Auswirkung wie die WM _ VSCROLL-Meldung.

Die EM _ SCROLLCARET-Nachricht führt in einem Bearbeitungssteuerfeld einen Bildlauf durch das Caretfeld in die Ansicht durch.

Festlegen von Tabstopps und Rändern

Eine Anwendung kann Tabstopps in einem mehrstufigen Bearbeitungssteuerfeld mithilfe der EM _ SETTABSTOPS-Meldung festlegen. (Der Standardwert für einen Tabstopp ist acht Zeichen.) Wenn eine Anwendung dem Bearbeitungssteuerfeld Text hinzufügt, generieren Tabstoppzeichen im Text automatisch Leerzeichen bis zum nächsten Tabstopp. Die MELDUNG _ EM SETTABSTOPS führt nicht automatisch dazu, dass das System den Text neu erstellt. Zu diesem Ziel kann eine Anwendung die InvalidateRect-Funktion aufrufen. Die MELDUNG EM _ SETTABSTOPS gilt nur für Mehrline-Bearbeitungssteuerelemente.

Eine Anwendung kann die Breite des linken und rechten Rands für ein Bearbeitungssteuer steuerelement mithilfe der EM _ SETMARGINS-Meldung festlegen. Nachdem diese Nachricht gesendet wurde, wird das Bearbeitungssteuer steuerelement neu gedrammt, um die neuen Randeinstellungen widerzuleiten. Eine Anwendung kann die Breite des linken oder rechten Rands abrufen, indem sie die EM _ GETMARGINS-Nachricht sendet. Standardmäßig werden die Bearbeitungssteuerzeichenränder nur so breit festgelegt, dass sie den größten horizontalen Zeichenüberhang (negative ABC-Breite) für die aktuelle Schriftart aufnehmen, die im Bearbeitungssteuerzeichen verwendet wird.

Verbergen von Benutzereingaben

Eine Anwendung kann ein Kennwortzeichen in einem Bearbeitungssteuerfeld verwenden, um Benutzereingaben zu verbergen. Wenn ein Kennwortzeichen festgelegt wird, wird es statt jedes Zeichens angezeigt, das der Benutzer einzugeben hat. Wenn ein Kennwortzeichen entfernt wird, zeigt das Steuerelement die Vom Benutzer eingegebenen Zeichen an. Wenn die Anwendung ein einzeilenbasiertes Bearbeitungssteuerzeichen im Format ES _ PASSWORDerstellt, ist das Standardkennwortzeichen ein Sternchen ( * ). Eine Anwendung kann die EM _ SETPASSWORDCHAR-Nachricht verwenden, um ein anderes Kennwortzeichen zu entfernen oder zu definieren, und die EM _ GETPASSWORDCHAR-Nachricht, um das aktuelle Kennwortzeichen abzurufen. Diese Meldungen gelten nur für einzeilenbasierte Bearbeitungssteuerelemente.

Verwenden von ganzen Zahlen

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

Rückgängig machen von Textvorgängen

Jedes Bearbeitungssteuerfeld behält ein Rückgängig-Flag bei, das angibt, ob eine Anwendung den letzten Vorgang für das Bearbeitungssteuerfeld umkehren oder rückgängig machen kann (z. B. das Rückgängig machen eines Textlöschung). Das Bearbeitungssteuerzeichen legt das Rückgängig-Flag fest, um anzugeben, dass der Vorgang rückgängig gemacht werden kann, und setzt ihn 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 sie dem Steuerelement eine EM _ CANUNDO-Nachricht sendet.

Eine Anwendung kann den letzten Vorgang rückgängig machen, indem sie dem Steuerelement eine _ EM-UNDO-Nachricht sendet. Ein Vorgang kann rückgängig gemacht werden, sofern kein anderer Bearbeitungssteuerungsvorgang zuerst erfolgt. Beispielsweise kann der Benutzer Text löschen, den Text ersetzen (den Löschvorgang rückgängig machen) und den Text dann erneut löschen (Ersetzung rückgängig machen). Die _ EM-Undo-Meldung gilt sowohl für einzeilen- als auch für mehrzeilenbasierte Bearbeitungssteuerelemente und funktioniert immer für einzeilenbasierte Bearbeitungssteuerelemente.

Eine Anwendung kann das Rückgängig-Flag eines Bearbeitungssteuerfelds zurücksetzen, indem dem Steuerelement eine EM _ EMPTYUNDOBUFFER-Nachricht gesendet wird. Das System setzt das Rückgängig-Flag automatisch zurück, wenn ein Bearbeitungssteuerteil eine EM _ SETHANDLE- oder WM _ SETTEXT-Meldung empfängt. Die SetDlgItemText-Funktion sendet eine WM _ SETTEXT-Nachricht.

Behandeln von Wordwrap und Zeilenumbrüchen

Eine Anwendung kann Wordwrap-Funktionen mit mehrzeilenigen Bearbeitungssteuerelementen verwenden, um das Wort- oder Wortfragment zu suchen, das in die nächste Zeile umschlossen werden soll. Mithilfe der vom System bereitgestellten Wordwrap-Standardfunktion enden Zeilen immer an den Leerzeichen zwischen Wörtern. Eine Anwendung kann eine eigene Wordwrap-Funktion angeben, indem sie eine EditWordBreakProc Wordwrap-Funktion an das Bearbeitungssteuerprogramm sendet und eine EM _ SETWORDBREAKPROC-Nachricht sendet. Eine Anwendung kann die Adresse der aktuellen Wordwrap-Funktion abrufen, indem sie dem Steuerelement eine EM _ GETWORDBREAKPROC-Nachricht sendet.

Eine Anwendung kann ein mehrzeilenbasiertes Bearbeitungssteuerfeld anleiten, am Ende von zeilenumschlossenen Textzeilen automatisch ein zeichenfreies Zeilenumbruchzeichen (zwei Wagenrücklauf- und einen Zeilenfeed) hinzuzufügen oder zu entfernen. Eine Anwendung kann dieses Feature aktivieren oder deaktivieren, indem sie dem Bearbeitungssteuer steuerelement eine EM _ FMTLINES-Nachricht sendet. Diese Meldung gilt nur für mehrzeilenige Bearbeitungssteuerelemente und wirkt sich nicht auf eine Zeile aus, die mit einem hartumbruch endet (ein Wagenrücklauf und ein Zeilenfeed, der vom Benutzer eingegeben wurde). Außerdem kann eine Anwendung in mehrline-Bearbeitungssteuerelementen den ES _ WANTRETURN-Stil angeben, um an fordern, dass das System einen Wagenrücklauf einfüge, wenn der Benutzer die EINGABETASTE im Bearbeitungssteuerteil drückt.

Abrufen von Punkten und Zeichen

Um das Zeichen zu bestimmen, das einem angegebenen Punkt im Clientbereich eines Bearbeitungssteuerzeichens am nächsten liegt, senden Sie die EM _ CHARFROMPOS-Nachricht an das Steuerelement. Die Meldung gibt den Zeichenindex und den Zeilenindex des Zeichens zurück, das dem Punkt am nächsten ist. Auf ähnliche Weise können Sie die Clientbereichkoordinaten eines angegebenen Zeichens abrufen, indem Sie die EM _ POSFROMCHAR-Nachricht senden. Die Meldung gibt die x- und y-Koordinaten der oberen linken Ecke des angegebenen Zeichens zurück.

Automatische Vervollstierung von Zeichenfolgen

Bei der automatischen Vervollstängung werden Zeichenfolgen, die teilweise in ein Bearbeitungssteuer steuerelement eingegeben wurden, in vollständige Zeichenfolgen erweitert. Wenn ein Benutzer z. B. beginnt, eine URL in das Steuerelement Adressbearbeitung eingibt, das in die Windows Internet Explorer-Symbolleiste eingebettet ist, erweitert die automatische Vervollstängung die Zeichenfolge in eine oder mehrere vollständige URLs, die mit der vorhandenen teiliellen Zeichenfolge konsistent sind. Eine teilielle URL-Zeichenfolge wie "mic" kann auf " https://www.microsoft.com " oder " " erweitert https://www.microsoft.com/windows werden. Die automatische Vervollstmmung wird in der Regel mit Bearbeitungssteuerelementen oder steuerelementen verwendet, die über ein eingebettetes Bearbeitungssteuerelemente verfügen.

Weitere Informationen finden Sie in der Dokumentation zur IAutoComplete- und IAutoComplete2-Schnittstelle.

Komplexes Skript in Bearbeitungssteuerelementen

Ein komplexes Skript ist eine Sprache, deren gedrucktes Formular nicht auf einfache Weise angelegt ist. Beispielsweise kann ein komplexes Skript bidirektionales Rendering, die kontextbezogene Gestaltung von Glyphen oder das Kombinieren von Zeichen ermöglichen. Die standardmäßigen Bearbeitungssteuerelemente wurden erweitert, um mehrsprachigen Text und komplexe Skripts zu unterstützen. Dies schließt nicht nur Eingaben und Anzeigen ein, sondern auch eine korrekte Cursorbewegung über Zeichencluster (z. B. in Thai- und Devanafün-Skripts).

Eine gut geschriebene Anwendung erhält diese Unterstützung automatisch und ohne Änderung. Auch hier sollten Sie erwägen, Unterstützung für die Leserichtung von rechts nach links und die rechte Ausrichtung zu unterstützen. In diesem Fall können Sie die erweiterten Stilflags des Bearbeitungssteuerfensters umschalten, 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 ;

Aktivieren Sie nach dem Festlegen des lAlign-Werts die neue Anzeige, indem Sie den erweiterten Stil des Bearbeitungssteuerfensters 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 gute Kontrolle für die Verarbeitung komplexer Skripts bieten. Weitere Informationen finden Sie unter Uniscribe.