Sdílet prostřednictvím


O ovládacích prvcích pro úpravy

Ovládací prvek pro editaci je obdélníkové okno ovládacího prvku, které se obvykle používá v dialogovém okně a umožňuje uživateli zadat a upravovat text.

Ovládací prvky pro úpravy podporují znakovou sadu Unicode, ve které jsou znaky dva bajty, a znakové sady ANSI, ve kterých jsou znaky jeden bajt. Další informace o znakových sadách Unicode a ANSI naleznete v tématu Unicode a znakové sady.

Rozšířené editační prvky podporují mnoho funkcí, které nejsou dostupné v systémových editačních prvcích. Další informace najdete v části Ovládací prvky pro úpravu bohatého textu.

V tomto přehledu jsou popsána následující témata.

Upravit funkce ovládacího prvku

Když je vybraný, ovládací prvek pro úpravy zobrazí blikající kurzor, který označuje místo vkládání. Uživatel pak může zadat text, přesunout kurzor nebo vybrat text, který chcete upravit pomocí klávesnice nebo myši. Ovládací prvek pro úpravy odesílá kódy oznámení ve formě zpráv WM_COMMAND do nadřazeného okna. Další informace o oznamovacích zprávách z ovládacího prvku úprav naleznete v tématu Oznámení zpráv ovládacího prvku úprav. Nadřazené okno může odesílat zprávy do ovládacího prvku pro úpravy v dialogovém okně voláním funkce SendDlgItemMessage. Některé zprávy je možné odeslat také pomocí předdefinovaných maker.

Systém poskytuje ovládací prvky pro úpravy s jedním řádkem i víceřádkové ovládací prvky pro úpravy. Ovládací prvky pro úpravy patří do třídy okna EDIT.

Kombinované pole je ovládací prvek, který kombinuje většinu funkcí ovládacího prvku pro editace a seznamu. V kombinovaném políčku editační ovládací prvek zobrazuje aktuální výběr a seznam ukazuje možnosti, které může uživatel vybrat. Další informace o kombinovaných polích naleznete v tématu Kombinovaná pole.

Mnoho vývojářů používá dialogová okna poskytovaná v knihovně běžných dialogových oken (Comdlg32.dll) k provádění úloh, které by jinak mohly vyžadovat přizpůsobené ovládací prvky pro úpravy. Informace o běžných dialogových oknech najdete v tématu Knihovna běžných dialogových oken.

Upravit typy a styly ovládacího prvku

Individuální ovládací prvek pro úpravy může mít současně několik stylů. Většina vývojářů používá nástroje k vývoji dialogových oken, takže nemusí explicitně zadávat styly ovládacích prvků. Pokud aplikace vytvoří ovládací prvek pro úpravy pomocí CreateWindow nebo CreateWindowEx funkce, musí však zadat tyto styly ovládacích prvků pro úpravy. Tabulku stylů ovládacích prvků pro úpravy viz Edit Control Styles.

Každý ovládací prvek pro úpravy určuje kombinaci hodnot stylu, které definují vzhled a funkce ovládacího prvku pro úpravy. Hodnoty stylu mohou určit vzhled jednořádkového nebo víceřádkového ovládacího prvku pro úpravy; zarovnat text v ovládacím prvku; a určit, zda se text vůbec zobrazí a jakým způsobem se objeví v ovládacím prvku pro úpravy.

Víceřádkový styl

Pro editační ovládací prvky existují dva styly. Výchozí nastavení je jednořádkový ovládací prvek pro úpravy. Aplikace může také vytvořit ovládací prvek pro víceřádkové úpravy pomocí stylu ES_MULTILINE.

Styly posouvání

Styl ES_AUTOHSCROLL říká editačnímu ovládacímu prvku, aby se text v případě potřeby posouval vodorovně, jako uživatel zadává text. Pokud tento styl není zadaný, ovládací prvek pro úpravy se nemůže vodorovně posunout. U ovládacích prvků pro úpravy s jedním řádkem bez ES_AUTOHSCROLLjsou přijímány pouze znaky, které vyplňují viditelnou oblast ovládacího prvku. U víceřádkových ovládacích prvků pro úpravy bez ES_AUTOHSCROLLse text zalamuje na další řádek, když uživatel zadá více textu, než lze zobrazit na jednom řádku. Pokud je pro víceřádkový ovládací prvek pro úpravy zadán ES_AUTOHSCROLL, ovládací prvek se vodorovně posune, když uživatel zadá více textu, než lze zobrazit na jednom řádku; text se nezalomí.

ES_AUTOHSCROLL se automaticky použije u víceřádkového editačního prvku zarovnaného doleva, který má styl WS_HSCROLL. Jinými slovy, jakýkoli ovládací prvek pro úpravy s více řádky zarovnaný doleva, který má vodorovný posuvník, se automaticky posune vodorovně.

ES_AUTOHSCROLL je ignorován víceřádkovým ovládacím prvku pro úpravy, který není zarovnaný doleva. Ovládací prvky pro úpravy víceřádkového textu, které jsou zarovnané na střed nebo doprava, nelze vodorovně posouvat.

Styl ES_AUTOVSCROLL říká editačnímu ovládacímu prvku, aby se text posouval svisle, když uživatel zadá více textu, než je možné zobrazit v editačním ovládacím prvku. Tento styl platí jenom pro ovládací prvky pro úpravy ve víceřádkovém zobrazení. Pokud tento styl není zadán pro ovládací prvek pro víceřádkové úpravy, ovládací prvek pro úpravy nepřijme vstup, pokud je zadán více textu, než lze zobrazit.

Styly zarovnání

Existují tři styly, které způsobí, že systém zarovná text v ovládacím prvku pro úpravy. Styly ES_LEFT, ES_CENTERa ES_RIGHT určují, jestli je text zarovnaný nalevo, na střed nebo vpravo. Ovládací prvky pro víceřádkové úpravy, které jsou zarovnány doprava nebo na střed, nemohou mít styl ES_AUTOHSCROLL; to znamená, že se nemohou posouvat vodorovně.

I když není možné dynamicky měnit styl zarovnání ovládacího prvku pro úpravy, můžete toto omezení obejít pomocí následujících technik:

  • Vytvořte více ovládacích prvků pro úpravy, jeden pro každý styl, který aplikace potřebuje, a podle potřeby mezi nimi přepínat.
  • Vytvořte nový ovládací prvek pro úpravy s požadovaným stylem podle potřeby a přepněte na nový ovládací prvek.

Styly textu a zadávání

Aplikace může pomocí stylů určit, jak ovládací prvek pro úpravy zobrazuje text. Styl ES_LOWERCASE způsobí, že se všechny velké znaky zadané do ovládacího prvku pro úpravy převedou na malá písmena. Podobně styl ES_UPPERCASE způsobí, že se všechny malá písmena převedou na velká písmena.

Další informace o znakových sadách naleznete v tématu Unicode a znakové sady.

Styl ES_NUMBER omezuje vstup pouze na číslice v ovládacím prvku pro úpravy.

Styl ES_READONLY změní ovládací prvek pro úpravy na stav jen pro čtení.

Styl ES_PASSWORD zobrazí všechny znaky v ovládacím prvku pro úpravy s jedním řádkem jako hvězdičky. Aplikace může definovat jiný znak, který se má zobrazit, pomocí EM_SETPASSWORDCHAR zprávy, jak je popsáno dále v tomto tématu.

Pokud je ovládací prvek pro úpravy z Comctl32.dll verze 6, je výchozím znakem ES_PASSWORD stylu černý kroužek. Při úpravách ovládacích prvků z předchozích verzí běžných ovládacích prvků je výchozím znakem hvězdička.

Styl ES_OEMCONVERT způsobí, že text zadaný do editačního prvku se převede ze znakové sady systému Windows do znakové sady OEM a pak zpět do znakové sady systému Windows. Tím se zajistí správný převod znaků, když aplikace volá funkci CharToOem pro převod řetězce Windows v ovládacím prvku pro úpravy na znaky OEM. ES_OEMCONVERT je nejužitečnější pro úpravy ovládacích prvků, které obsahují názvy souborů, které budou použity v systémech souborů, které nepodporují Kódování Unicode.

U víceřádkového ovládacího prvku pro úpravy v dialogovém okně ES_WANTRETURN styl způsobí, že ovládací prvek vloží návrat na začátek řádku, když uživatel při zadávání textu stiskne klávesu ENTER. Pokud tento styl není zadaný, má stisknutí klávesy ENTER stejný efekt jako stisknutí výchozího tlačítka v dialogovém okně. Bez ES_WANTRETURNmusí uživatel stisknutím kombinace kláves CTRL+ENTER vložit návrat na začátek řádku. Informace o zalomení textu a zalomení řádků najdete v tématu Zpracování zalomení textu a zalomení řádků.

Vizuální styly

Styl ES_NOHIDESEL způsobí, že vybraný text zůstane zvýrazněný, když ovládací prvek pro úpravy fokus nemá. Bez tohoto stylu vybraný text ztratí zvýraznění, když ovládací prvek ztratí fokus.

Ve výchozím nastavení ovládací prvek pro úpravy nemá žádné ohraničení. Abychom to dosáhli, může aplikace použít styl okna WS_BORDER.

Chcete-li používat vizuální styly s ovládacími prvky pro úpravy, musí aplikace obsahovat manifest a musí volat InitCommonControls na začátku programu. Informace o vizuálních stylech najdete v tématu vizuální styly. Informace o manifestech najdete v tématu Povolení vizuálních stylů.

Vyrovnávací paměť textu

Systém ukládá text ovládacího prvku do vyrovnávací paměti a kopíruje ho do ovládacího prvku podle potřeby.

Následující témata popisují, jak systém přiděluje a inicializuje vyrovnávací paměť a mění její vlastnosti:

Přidělení vyrovnávací paměti pro text

Když systém vytvoří editační prvek, automaticky vytvoří vyrovnávací paměť textu, nastaví její počáteční velikost a podle potřeby ji zvětšuje. Velikost může být až do předdefinovaného limitu přibližně 32 kilobajtů (kB) pro jednořádkové editační ovládací prvky. Vzhledem k tomu, že se tento limit může změnit, označuje se jako měkký limit. Aplikace může nastavit pevný limit velikosti vyrovnávací paměti odesláním EM_SETLIMITTEXT zprávy do ovládacího prvku pro úpravy. Pokud vyrovnávací paměť překročí některý limit, systém odešle aplikaci EN_ERRSPACE kód oznámení. Aplikace může načíst aktuální omezení textu odesláním zprávy EM_GETLIMITTEXT.

Systém obvykle vytvoří editační ovládací prvek v dialogovém okně pomocí paměti mimo datový segment aplikace. Aplikace může potlačit toto výchozí chování přidělení a vytvořit vyrovnávací paměť z místní haldy pomocí stylu DS_LOCALEDIT (viz "Styly šablon dialogových oken" v části O dialogových oknech) při vytvoření editačního ovládacího prvku. Aplikace, která používá styl DS_LOCALEDIT, zodpovídá za přidělení všech vyrovnávacích pamětí. Aby bylo možné provést počáteční přidělení, může aplikace volat funkci LocalAlloc a předat vrácený popisovač vyrovnávací paměti ovládacímu prvku pro úpravy odesláním zprávy EM_SETHANDLE. Pokud chcete provést další přidělení (například v reakci na kód oznámení EN_ERRSPACE), aplikace by měla uložit aktuální obsah vyrovnávací paměti (v případě potřeby) a získat novou vyrovnávací paměť následujícím způsobem.

Chcete-li uložit aktuální vyrovnávací paměť a získat novou, postupujte podle tohoto postupu.

  1. Načtěte popisovač aktuálně přidělené paměti pro text ve víceřádkovém editačním prvku tím, že odešlete prvku zprávu EM_GETHANDLE.
  2. Uvolněte vyrovnávací paměť voláním funkce LocalFree.
  3. Získejte novou vyrovnávací paměť (a popisovač vyrovnávací paměti) voláním LocalAlloc.
  4. Předejte úchyt vyrovnávací paměti systému odesláním zprávy kontrolnímu mechanismu EM_SETHANDLE.

Zprávy EM_SETHANDLE a EM_GETHANDLE platí jenom pro víceřádkové ovládací prvky pro úpravy.

Aplikace, která používá výchozí chování přidělení (to znamená, že nepoužívá styl DS_LOCALEDIT (viz "Styly šablony dialogového okna" v O dialogových oknech)) nesmí odesílat EM_SETHANDLE a EM_GETHANDLE zprávy do ovládacího prvku pro úpravy.

Odeslání zprávy EM_SETHANDLE má několik vedlejších efektů: vymaže příznak zpět (aby EM_CANUNDO zpráva vrátila nulu), vymaže příznak úpravy (aby EM_GETMODIFY zpráva vrátila nulu) a překreslí okno ovládacího prvku pro úpravy.

Inicializace vyrovnávací paměti textu

Aplikace může inicializovat nebo znovu inicializovat vyrovnávací paměť textu ovládacího prvku úprav voláním SetDlgItemText funkce. Aplikace může načíst obsah textové vyrovnávací paměti voláním funkce GetDlgItemText.

Nastavení textového bufferu jako pouze pro čtení

U každého ovládacího prvku pro úpravy systém udržuje příznak jen pro čtení, který označuje, jestli je text ovládacího prvku jen pro čtení a zápis (výchozí) nebo jen pro čtení. Aplikace může nastavit příznak pro čtení a zápis nebo pouze pro čtení textu odesláním zprávy EM_SETREADONLY řídicí jednotce pomocí . Chcete-li zjistit, zda je ovládací prvek pro úpravy jen pro čtení, může aplikace volat funkci GetWindowLong pomocí konstanty GWL_STYLE. Zpráva EM_SETREADONLY platí pro ovládací prvky pro úpravy s jedním řádkem i více řádky.

Změna obdélníku formátování

Viditelnost textu ovládacího prvku pro úpravy se řídí rozměry jeho obdélníku okna a jeho formátovacím obdélníkem. Obdélník okna je klientská oblast okna obsahující ovládací prvek pro úpravy. Obdélník formátování je konstrukce udržovaná systémem pro formátování textu zobrazeného v obdélníku okna. Při prvním zobrazení ovládacího prvku pro úpravy jsou dva obdélníky na obrazovce stejné. Aplikace může obdélník formátování zvětšit než obdélník okna (čímž omezí viditelnost textu ovládacího prvku úprav) nebo menší než obdélník okna (čímž se kolem textu vytvoří nadbytečné prázdné znaky).

Aplikace může nastavit souřadnice formátovacího obdélníku editačního prvku odesláním zprávy EM_SETRECT. Zpráva EM_SETRECT také automaticky překreslí text ovládacího prvku pro úpravy. Pokud chcete vytvořit souřadnice obdélníku formátování bez překreslení textu ovládacího prvku, může aplikace poslat zprávu EM_SETRECTNP ovládacímu prvku. Pokud chcete načíst souřadnice obdélníku formátování, může aplikace odeslat zprávu ovládacímu prvku EM_GETRECT. Tyto zprávy platí jenom pro ovládací prvky pro víceřádkové úpravy.

Upravit zprávy s oznámením o ovládacím prvku

Uživatel provádí žádosti o úpravy pomocí klávesnice a myši. Systém odešle každý požadavek do nadřazeného okna ovládacího prvku pro úpravy ve formě zprávy WM_COMMAND. Zpráva obsahuje identifikátor ovládacího prvku pro úpravy ve slově s nízkým pořadím parametru wParam, popisovač ovládacího prvku pro úpravy v parametru lParam a kód oznámení pro úpravu ovládacích prvků odpovídající akci uživatele ve slově s vysokým pořadím parametru wParam.

Aplikace by měla prověřit kódy oznámení, které doprovází každou zprávu oznámení, a odpovídajícím způsobem reagovat. Následující tabulka uvádí každý kód oznámení o úpravách a akci, která ho vygeneruje.

Kód oznámení Akce uživatele
EN_CHANGE Uživatel upravil text v ovládacím prvku pro úpravy. Systém před odesláním tohoto kódu oznámení aktualizuje zobrazení (na rozdíl od EN_UPDATE).
EN_ERRSPACE Ovládací prvek pro úpravy nemůže přidělit dostatek paměti pro splnění konkrétního požadavku.
EN_HSCROLL Uživatel kliknul na vodorovný posuvník ovládacího prvku pro úpravy. Systém před aktualizací obrazovky odešle tento kód oznámení.
EN_KILLFOCUS Uživatel vybral jiný ovládací prvek.
EN_MAXTEXT Při vkládání textu uživatel překročil zadaný počet znaků ovládacího prvku pro úpravy. Vložení bylo zkráceno. Tento kód oznámení se odešle také v případě, že ovládací prvek pro úpravy nemá styl ES_AUTOHSCROLL a počet znaků, které se mají vložit, překračuje šířku ovládacího prvku pro úpravy nebo když ovládací prvek pro úpravy nemá styl ES_AUTOVSCROLL a celkový počet řádků, které se mají vložit, překračuje výšku ovládacího prvku pro úpravy.
EN_SETFOCUS Uživatel vybral tento ovládací prvek pro úpravy.
EN_UPDATE Uživatel změnil text v ovládacím prvku pro úpravy a systém se chystá nový text zobrazit. Systém odešle tento kód oznámení po formátování textu, ale před jeho zobrazením, aby aplikace mohl změnit velikost ovládacího okna pro úpravy.
EN_VSCROLL Uživatel kliknul na svislý posuvník ovládacího prvku pro úpravy nebo posoul kolečko myši přes ovládací prvek pro úpravy. Systém před aktualizací obrazovky odešle tento kód oznámení.
EN_SEARCHWEB Uživatel klikl na položku místní nabídky „Hledat na webu“. Systém odešle toto oznámení po spuštění prohlížeče.

Systém navíc před vykreslením ovládacího prvku pro úpravy odešle zprávu WM_CTLCOLOREDIT do nadřazeného okna ovládacího prvku pro úpravy. Tato zpráva obsahuje popisovač kontextu zobrazení ovládacího prvku pro úpravy (DC) a popisovač podřízeného okna. Nadřazené okno může pomocí těchto úchytů změnit text a barvy pozadí ovládacího prvku pro úpravy.

Upravit výchozí zpracování zpráv ovládacího prvku

Procedura okna pro předdefinovanou třídu okna pro úpravy provádí výchozí zpracování pro všechny zprávy, které procedura úprav nezpracovává. Když ovládací procedura pro úpravy vrátí FALSE pro libovolnou zprávu, předdefinovaná procedura okna zkontroluje zprávy a provede následující výchozí akce.

Zpráva Výchozí akce
EM_CANUNDO Vrátí TRUE, pokud je možné operaci ovládacího prvku vrátit zpět.
EM_CHARFROMPOS Vrátí index znaku a index řádku, na kterém je znak nejblíže zadanému bodu.
EM_EMPTYUNDOBUFFER Vymaže vyrovnávací paměť vrácení a nastaví příznak možnosti vrácení získaný zprávou EM_CANUNDO na FALSE. Systém automaticky vymaže zpětný příznak pokaždé, když editovací ovládací prvek obdrží WM_SETTEXT nebo EM_SETHANDLE zprávu.
EM_FMTLINES Přidá nebo odebere měkké znaky zalomení řádku (dva návraty vozítka a posun o řádek) na konce zalomených řádků ve víceřádkovém editačním ovládacím prvku. Nezpracovávají se pomocí jednořádkových editačních ovládacích prvků.
EM_GETFIRSTVISIBLELINE Vrátí nula-podmíněný index prvního viditelného znaku v ovládacím prvku pro úpravy s jedním řádkem nebo nula-podmíněný index nejhornějšího viditelného řádku ve víceřádkovém ovládacím prvku pro úpravy.
EM_GETHANDLE Vrátí popisovač identifikující vyrovnávací paměť obsahující text víceřádkového editačního pole. Nezpracovávají se pomocí jednořádkových ovládacích prvků pro úpravy.
EM_GETLIMITTEXT Vrátí aktuální limit textu ve znacích.
EM_GETLINE Zkopíruje znaky z jednořádkového editačního prvku do vyrovnávací paměti a vrátí počet zkopírovaných znaků. Ve víceřádkovém ovládacím prvku pro úpravy načte řádek textu z ovládacího prvku a vrátí počet zkopírovaných znaků.
EM_GETLINECOUNT Vrátí počet řádků v ovládacím prvku pro úpravy.
EM_GETMARGINS Vrátí šířky levého a pravého okraje.
EM_GETMODIFY Vrátí příznak označující, jestli byl změněn obsah ovládacího prvku pro úpravy.
EM_GETPASSWORDCHAR Vrátí znak, který ovládací prvky používají ve spojení se stylem ES_PASSWORD.
EM_GETRECT Vrátí souřadnice obdélníku formátování v ovládacím prvku pro úpravy.
EM_GETSEL Vrátí počáteční a koncovou pozici znaku aktuálního výběru v ovládacím prvku pro úpravy.
EM_GETTHUMB Vrátí pozici posuvníku ve svislé posuvné liště u víceřádkového editačního ovládacího prvku.
EM_GETWORDBREAKPROC Vrátí adresu aktuální funkce Wordwrap v ovládacím prvku pro úpravy.
EM_LINEFROMCHAR Vrátí číslo řádku založeného na nule v víceřádkovém ovládacím prvku pro úpravy, který obsahuje zadaný znakový index. Tato zpráva je opačnou zprávou k EM_LINEINDEX zprávě. Není zpracováván pomocí jednořádkových editačních ovládacích prvků.
EM_LINEINDEX Vrátí znak z určitého řádku v ovládacím prvku pro úpravy víceřádkového textu. Tato zpráva je opačná k EM_LINEFROMCHAR zprávě. Není zpracováno jednořádkovými editačními ovládacími prvky.
EM_LINELENGTH Vrátí délku ovládacího prvku pro úpravu s jedním řádkem v počtu znaků. Vrátí délku zadaného řádku ve znacích ve víceřádkovém ovládacím prvku pro úpravy.
EM_LINESCROLL Posune text svisle v ovládacím prvku pro úpravy s jedním řádkem nebo vodorovně ve víceřádkovém ovládacím prvku pro úpravy (pokud má ovládací prvek styl ES_LEFT). Parametr lParam určuje počet řádků, které se mají posunout svisle, počínaje aktuálním řádkem. Parametr wParam určuje počet znaků, které se mají posunout vodorovně, počínaje aktuálním znakem.
EM_POSFROMCHAR Vrátí klientské souřadnice zadaného znaku.
EM_REPLACESEL Nahradí aktuální výběr textem ve vyrovnávací paměti zadané aplikací, odešle rodičovskému oknu kódy oznámení EN_UPDATE a EN_CHANGE a aktualizuje buffer pro vrácení zpět.
EM_SCROLL Posune text svisle ve víceřádkovém ovládacím prvku pro úpravy. Tato zpráva je ekvivalentní odeslání zprávy WM_VSCROLL ovládacímu prvku pro úpravy. Jednořádkové ovládací prvky pro editaci je nezpracovávají.
EM_SCROLLCARET Posune kurzor do zobrazení v editačním prvku.
EM_SETFONT Nepodporovaný.
EM_SETHANDLE Nastaví ovladač na paměť používanou jako textový buffer, vyprázdní vyrovnávací paměť pro odvolání, nastaví polohy rolování na nulu a překreslí okno.
EM_SETLIMITTEXT Nastaví maximální počet znaků, které může uživatel zadat do ovládacího prvku pro úpravy. U ovládacích prvků pro úpravy s jedním řádkem je tato hodnota buď 0x7FFFFFFE, nebo hodnota parametru wParam podle toho, co je menší. U ovládacích prvků pro víceřádkové úpravy je tato hodnota buď 1, nebo hodnota parametru wParam podle toho, co je menší.
EM_SETMARGINS Nastaví šířky levého a pravého okraje a překreslí ovládací prvek pro úpravy tak, aby odrážel nové okraje.
EM_SETMODIFY Nastaví nebo vymaže příznak úprav, který označuje, jestli byl ovládací prvek pro úpravy změněn.
EM_SETPASSWORDCHAR Definuje znak, který ovládací prvky používají ve spojení se stylem ES_PASSWORD.
EM_SETREADONLY Nastaví nebo odebere styl jen pro čtení (ES_READONLY) v ovládacím prvku pro úpravy.
EM_SETRECT Nastaví obdélník formátování pro ovládací prvek pro víceřádkové úpravy a překreslí okno. Není zpracováváno pomocí jednořádkových ovládacích prvků pro úpravy.
EM_SETRECTNP Nastaví obdélník formátování pro ovládací prvek pro víceřádkové úpravy, ale nepřekreslí okno. Nezpracovávají se pomocí jednořádkových ovládacích prvků pro úpravy.
EM_SETSEL Vybere rozsah znaků v editačním ovládacím prvku nastavením počáteční a koncové pozice pro výběr.
EM_SETTABSTOPS Nastaví pozice zarážky tabulátoru v editačním ovládacím prvku pro víceřádkový text. Nezpracovávají se pomocí jednořádkových ovládacích prvků pro úpravy.
EM_SETWORDBREAKPROC Nahradí výchozí funkci Wordwrap funkcí definovanou aplikací Wordwrap.
EM_UNDO Odebere veškerý text, který byl právě vložen nebo vloží všechny odstraněné znaky, a nastaví výběr na vložený text. V případě potřeby odešle kódy oznámení EN_UPDATE a EN_CHANGE do nadřazeného okna.
WM_CHAR Zapíše znak do ovládacího prvku pro úpravy s jedním řádkem a odešle kódy oznámení EN_UPDATE a EN_CHANGE do nadřazeného okna. Zapíše znak do ovládacího prvku pro víceřádkové úpravy. Zpracovává klávesy akcelerátoru pro standardní funkce, například CTRL+C pro kopírování a CTRL+V pro vkládání. V ovládacích prvcích pro víceřádkové úpravy se také zpracovávají stisky kláves TAB a CTRL+TAB, které umožňují přechod mezi ovládacími prvky v dialogovém okně a vkládání tabulátorů do víceřádkových ovládacích prvků pro úpravy. Používá funkci MessageBeep pro neplatné znaky.
WM_CLEAR Vymaže aktuální výběr( pokud existuje) v ovládacím prvku pro úpravy. Pokud neexistuje žádný aktuální výběr, odstraní znak napravo od kurzoru. Pokud uživatel stiskne klávesu SHIFT, vyjme se výběr do schránky nebo odstraní znak vlevo od kurzoru, pokud není vybrán. Pokud uživatel stiskne klávesu CTRL, odstraní se výběr nebo se text odstraní až na konec řádku, pokud není žádný výběr.
WM_COPY Zkopíruje text do schránky, pokud není styl ES_PASSWORD, v takovém případě zpráva vrátí nulu.
WM_CREATE Vytvoří ovládací prvek pro úpravy a upozorní nadřazené okno TRUE pro úspěch nebo 1 pro selhání.
WM_CUT Vyjme výběr do schránky nebo vymaže znak vlevo od kurzoru, pokud není žádný výběr.
WM_ENABLE Způsobí, že se obdélník překreslí šedě pro ovládací prvky pro úpravy s jedním řádkem. Vrátí povolený stav pro jednořádkové a víceřádkové ovládací prvky pro úpravy.
WM_ERASEBKGND Vyplní okno ovládacího prvku pro víceřádkové úpravy aktuální barvou ovládacího prvku pro úpravy.
WM_GETDLGCODE Vrátí následující hodnoty: DLGC_WANTCHARS, DLGC_HASSETSEL a DLGC_WANTARROWS. V ovládacích prvcích pro víceřádkové úpravy vrátí také DLGC_WANTALLKEYS. Pokud uživatel stiskne kombinaci kláves ALT+BACKSPACE, vrátí také DLGC_WANTMESSAGE.
WM_GETFONT Vrátí popisovač písma, které ovládací prvek používá, nebo NULL, pokud ovládací prvek používá systémové písmo.
WM_GETTEXT Zkopíruje zadaný počet znaků do vyrovnávací paměti a vrátí počet zkopírovaných znaků.
WM_GETTEXTLENGTH Vrátí délku textu v editačním prvku ve znacích. Délka neobsahuje ukončovací znak null.
WM_HSCROLL Posune text ve víceřádkovém editačním prvku vodorovně a zpracovává pohyb posuvného pole.
WM_KEYDOWN Provádí standardní zpracování kódů virtuálních klíčů.
WM_KILLFOCUS Odebere fokus klávesnice v okně ovládacího prvku pro úpravy, zničí kurzor, skryje aktuální výběr a upozorní nadřazené okno, že ovládací prvek pro úpravy ztratil fokus.
WM_LBUTTONDBLCLK Vymaže aktuální výběr a vybere slovo pod kurzorem. Pokud je klávesa SHIFT stisknutá, rozšíří výběr na slovo pod kurzorem.
WM_LBUTTONDOWN Změní aktuální bod vložení. Pokud je klávesa SHIFT stisknutá, rozšíří výběr na pozici kurzoru. V ovládacích prvcích pro víceřádkové úpravy také nastaví časovač, aby se automaticky posouval obsah, když uživatel podrží tlačítko myši mimo okno tohoto ovládacího prvku.
WM_LBUTTONUP Uvolní snímek myši a nastaví textový kurzor v ovládacím prvku pro úpravy s jedním řádkem. V víceřádkovém editačním prvku také ukončí časovač nastavený v příkazu WM_LBUTTONDOWN.
WM_MOUSEMOVE Změní aktuální výběr v ovládacím prvku pro úpravy s jedním řádkem, pokud je tlačítko myši mimo provoz. V ovládacím prvku pro víceřádkovou úpravu se také nastaví časovač, který automaticky posouvá, když uživatel drží stisknuté tlačítko myši mimo okno tohoto prvku.
WM_NCCREATE Ukazatel na strukturu CREATESTRUCT pro okno. Tato zpráva je odeslána se zprávou WM_CREATE při prvním vytvoření okna.
WM_NCDESTROY Uvolní veškerou paměť přidruženou k oknu úprav, včetně vyrovnávací paměti textu, vyrovnávací paměti pro vrácení zpět, vyrovnávací paměti tabulátoru a zvýrazňovacího štětce.
WM_PAINT Vymaže pozadí, vyplní okno aktuální barvou ovládacího okna ovládacího prvku pro úpravy, nakreslí ohraničení (pokud existuje), nastaví písmo a nakreslí libovolný text a zobrazí kurzor vložení textu.
WM_PASTE Vloží text ze schránky do ovládacího okna pro úpravy na pozici kurzoru.
WM_SETFOCUS Nastaví fokus klávesnice v okně ovládacího prvku pro úpravy (zobrazí aktuální výběr, pokud byl skrytý, a vytvoří kurzor).
WM_SETFONT Nastaví písmo a volitelně překreslí ovládací prvek pro úpravy.
WM_SETTEXT Zkopíruje text do ovládacího prvku pro úpravy s jedním řádkem, upozorní nadřazené okno, pokud není dostatek paměti, vyprázdní vyrovnávací paměť zpět a odešle kódy oznámení EN_UPDATE a EN_CHANGE do nadřazeného okna. V ovládacích prvcích pro víceřádkové úpravy také přepíše řádky (v případě potřeby) a nastaví pozice posunu.
WM_SIZE Nastaví velikost ovládacího okna ovládacího prvku pro úpravy a zajistí, aby velikost odpovídala výšce a šířce znaku.
WM_SYSCHAR Vrátí TRUE, pokud uživatel stiskne kombinaci kláves ALT+BACKSPACE; jinak neprobíná žádnou akci.
WM_SYSKEYDOWN Vrátí zpět poslední akci, pokud uživatel stiskne alt+BACKSPACE; jinak neprobíná žádnou akci.
WM_TIMER Posune text v okně ovládacího prvku pro úpravy, pokud uživatel podrží tlačítko myši mimo okno ovládacího prvku pro úpravy ve víceřádkovém zobrazení.
WM_UNDO Odebere veškerý text, který byl právě vložen nebo vloží všechny odstraněné znaky, a nastaví výběr na vložený text. V případě potřeby odešle oznamovací kódy EN_UPDATE a EN_CHANGE do nadřazeného okna.
WM_VSCROLL Posouvá víceřádkový textový ovládací prvek svisle a zpracovává pohyb okénka posuvníku. Zpracování neprobíhá pomocí jednořádkových ovládacích prvků pro úpravy.

Předdefinovaná procedura ovládacího okna úprav předává všechny ostatní zprávy do funkce DefWindowProc pro výchozí zpracování.