Tudnivalók a vezérlők szerkesztéséről
A szerkesztési vezérlő egy négyszögletes vezérlőablak, amelyet általában egy párbeszédpanelen használnak, amellyel a felhasználó szöveget írhat be és szerkeszthet.
A szerkesztési vezérlők támogatják mind azt a Unicode-karakterkészletet, amelyben a karakterek két bájtok, és az ANSI-karakterkészleteket, amelyekben a karakterek egy bájtból állnak. További információ a Unicode- és ANSI-karakterkészletekről: Unicode- és karakterkészletek.
Rich Edit vezérlők számos olyan funkciót támogatnak, amelyek nem érhetők el a rendszer szerkesztő vezérlőiben. A további részletekért lásd: Rich Edit Controls.
Ebben az áttekintésben az alábbi témaköröket tárgyaljuk.
- Vezérlőfunkciók szerkesztése
- Vezérlőtípusok és stílusok szerkesztése
- A szövegpuffer
- Formázási téglalap módosítása
- Vezérlő értesítési üzenetek szerkesztése
- Szerkesztési vezérlő alapértelmezett üzenetfeldolgozás
Vezérlőfunkciók szerkesztése
Ha ki van jelölve, a szerkesztő mező egy villogó kurzort jelenít meg, amely a beszúrási pontot jelzi. A felhasználó ezután szöveget írhat be, áthelyezheti a beszúrási pontot, vagy kijelölheti a szerkeszteni kívánt szöveget a billentyűzet vagy az egér használatával. A szerkesztési vezérlő értesítési kódokat küld a szülőablakba WM_COMMAND üzenetek formájában. A szerkesztési vezérlők üzeneteiről további információt a Vezérlő értesítési üzenetek szerkesztésecímű témakörben talál. A szülőablakok a SendDlgItemMessage függvény meghívásával küldhetnek üzeneteket a párbeszédpanel szerkesztési vezérlőinek. Egyes üzeneteket előre definiált makrók használatával is elküldhet.
A rendszer egysoros szerkesztési vezérlőket és többsoros szerkesztési vezérlőket is biztosít. A szerkesztési vezérlők az EDIT ablakosztályhoz tartoznak.
A kombinált lista egy vezérlő, amely a szerkesztési vezérlő és a lista funkcióinak nagy részét egyesíti. A kombinált listában a szerkesztési vezérlő megjeleníti az aktuális kijelölést, a lista pedig megjeleníti a felhasználó által kiválasztható lehetőségeket. További információ a kombinált listákról: Kombinált listák.
Sok fejlesztő használja a közös párbeszédpaneltárban (Comdlg32.dll) található párbeszédpaneleket olyan feladatok végrehajtásához, amelyek egyébként egyéni szerkesztési vezérlőket igényelhetnek. A gyakori párbeszédpanelekről további információt a Közös párbeszédpaneltárcímű témakörben talál.
Vezérlőtípusok és stílusok szerkesztése
Az egyes szerkesztési vezérlők egyszerre több stílussal is rendelkezhetnek. A fejlesztők többsége eszközökkel fejleszti a párbeszédpaneleket, ezért előfordulhat, hogy nem kell explicit módon megadnia a szerkesztési vezérlőstílusokat. Ha egy alkalmazás szerkesztési vezérlőt hoz létre a CreateWindow vagy CreateWindowEx függvénnyel, akkor azonban meg kell adnia ezeket a szerkesztési vezérlőstílusokat. A szerkesztési vezérlőstílusok táblázatát lásd a Szerkesztési vezérlőstílusokcímű témakörben.
Minden szerkesztési vezérlő stílusértékek kombinációját adja meg, amelyek meghatározzák a szerkesztési vezérlő megjelenését és funkcióit. A stílusértékek meghatározhatják az egysoros vagy többsoros szerkesztési vezérlők megjelenését, a benne lévő szöveg igazítását, valamint azt, hogy a szöveg hogyan és akár meg is jelenik-e a szerkesztési vezérlőben.
Többsoros stílus
A szerkesztési vezérlőkhöz két vonalstílus használható. Az alapértelmezett egy egysoros szerkesztőmező. Az alkalmazások többsoros szerkesztési vezérlőt is létrehozhatnak a ES_MULTILINE stílus használatával.
Görgetési stílusok
A ES_AUTOHSCROLL stílus arra utasítja a szerkesztési vezérlőt, hogy szükség esetén vízszintesen görgesse a szöveget, miközben a felhasználó beírja a szöveget. Ha ez a stílus nincs megadva, a szerkesztési vezérlő nem tud vízszintesen görgetni. A ES_AUTOHSCROLLnélküli egysoros szerkesztési vezérlők esetében csak a vezérlőelem látható területét kitöltő karakterek fogadhatók el. Többsoros szerkesztési vezérlők esetén, amikor nincs ES_AUTOHSCROLL, a szöveg a következő sorba kerül, ha a felhasználó több szöveget ír be, mint amennyit egy sorban meg lehet jeleníteni. Ha ES_AUTOHSCROLL többsoros szerkesztési vezérlőhöz van megadva, a vezérlő vízszintesen görget, amikor a felhasználó több szöveget ír be, mint amennyit egy sorban megjeleníthet; a szöveg nem tördel.
ES_AUTOHSCROLL automatikusan alkalmazzák egy WS_HSCROLL stílussal rendelkező, balra igazított, többsoros szerkesztési vezérlőre. Más szóval a vízszintes görgetősávot tartalmazó, balra igazított, többsoros szerkesztési vezérlő automatikusan vízszintesen görget.
Egy nem balra igazított többsoros szerkesztési vezérlőt figyelmen kívül hagyja az ES_AUTOHSCROLL. A középre igazított és jobbra igazított többsoros szerkesztési vezérlők nem görgethetők vízszintesen
A ES_AUTOVSCROLL stílus arra utasítja a szerkesztési vezérlőt, hogy függőlegesen görgesse a szöveget, amikor a felhasználó több szöveget ír be, mint amennyit a szerkesztési vezérlőben megjeleníthet. Ez a stílus csak a többsoros szerkesztési vezérlőkre vonatkozik. Ha ez a stílus nincs megadva többsoros szerkesztési vezérlőhöz, a szerkesztési vezérlő nem fogadja el a bemenetet, ha több szöveget ír be, mint amennyit megjeleníthet.
Igazítási stílusok
Három stílus miatt a rendszer egy szerkesztési vezérlőben igazítja a szöveget. A ES_LEFT, a ES_CENTERés a ES_RIGHT stílus határozza meg, hogy a szöveg bal, középre vagy jobbra van-e igazítva. A jobbra igazított és középre igazított többsoros szerkesztési vezérlők nem rendelkeznek a ES_AUTOHSCROLL stílusával; vagyis nem tudnak vízszintesen görgetni.
Bár a szerkesztési vezérlők igazítási stílusa nem módosítható dinamikusan, a korlátozás megkerüléséhez az alábbi technikák használhatók:
- Hozzon létre több szerkesztési vezérlőt, egyet az alkalmazás által igényelt stílusokhoz, és szükség szerint váltson közöttük.
- Szükség szerint hozzon létre egy új szerkesztési vezérlőt a kívánt stílussal, és váltson az új vezérlőre.
Szöveg- és beviteli stílusok
Az alkalmazások stílusokkal határozhatják meg, hogy a szerkesztési vezérlő hogyan jeleníti meg a szöveget. A ES_LOWERCASE stílus hatására a szerkesztési vezérlőbe beírt összes nagybetű kisbetűssé alakul. Hasonlóképpen, a ES_UPPERCASE stílus miatt az összes kisbetű nagybetűvé alakul.
További információ a karakterkészletekről: Unicode és Karakterkészletek.
A ES_NUMBER stílus csak a szerkesztési vezérlőben lévő számjegyekre korlátozza a bemenetet.
A ES_READONLY stílus írásvédett állapotúra módosítja a szerkesztési vezérlőt.
A ES_PASSWORD stílus csillagként jeleníti meg az egysoros szerkesztési vezérlő összes karakterét. Az alkalmazások a jelen témakör későbbi részében ismertetett EM_SETPASSWORDCHAR üzenet használatával definiálhatnak egy másik megjelenítendő karaktert.
Ha egy szerkesztési vezérlő Comctl32.dll 6-os verzióból származik, a ES_PASSWORD stílus alapértelmezett karaktere egy fekete kör. A közös vezérlők korábbi verzióinak szerkesztési vezérlőiben az alapértelmezett karakter egy csillag.
A ES_OEMCONVERT stílus hatására a szerkesztési vezérlőbe beírt szöveg a Windows karakterkészletből az OEM karakterkészletbe, majd vissza a Windows-karakterkészletbe lesz konvertálva. Ez biztosítja a megfelelő karakterátalakítást, amikor az alkalmazás meghívja a CharToOem függvényt, hogy a szerkesztési vezérlőben lévő Windows-sztringet OEM-karakterekké alakítsa. ES_OEMCONVERT leginkább olyan fájlneveket tartalmazó szerkesztési vezérlők esetén hasznos, amelyek a Unicode-t nem támogató fájlrendszereken lesznek használva.
Egy párbeszédpanel többsoros szerkesztővezérlőjében a ES_WANTRETURN stílus lehetővé teszi, hogy a vezérlő sortörést végezzen, amikor a felhasználó lenyomja az ENTER billentyűt szöveg bevitele közben. Ha ez a stílus nincs megadva, az ENTER billentyű lenyomása ugyanolyan hatással van, mint a párbeszédpanel alapértelmezett leküldési gombjának lenyomása. A ES_WANTRETURNnélkül a felhasználónak a CTRL+ENTER billentyűkombinációt meg kell nyomnia a kocsivissza karakter beszúrásához. A Wordwrapról és a sortörésről további információt a A Wordwrap és a Sortörések kezelésecímű témakörben talál.
Vizuális stílusok
A ES_NOHIDESEL stílus hatására a kijelölt szöveg ki van emelve, ha a szerkesztési vezérlő nincs fókuszban. E stílus nélkül a kijelölt szöveg elveszíti a kiemelést, amikor a vezérlőelem elveszíti a fókuszt.
Alapértelmezés szerint a szerkesztési vezérlőnek nincs szegélye. Egy alkalmazás a WS_BORDER ablakstílust használhatja.
Ha szerkesztési vezérlőkkel szeretne vizuális stílusokat használni, az alkalmazásnak tartalmaznia kell egy jegyzékfájlt, és meg kell hívnia InitCommonControls a program elején. A vizuális stílusokról további információt Vizuális stílusokcímű témakörben talál. A jegyzékekről szóló információkat a Vizuális stílusok engedélyezésetémakörben találja.
A szövegpuffer
A rendszer tárolja a vezérlő szövegének szerkesztését egy pufferben, és szükség szerint átmásolja a vezérlőbe.
Az alábbi témakörök azt ismertetik, hogy a rendszer hogyan foglalja le és inicializálja a puffert, és hogyan módosítja annak jellemzőit:
- Szövegpuffer kiosztása
- Szövegpuffer- inicializálása
- Szövegpuffer írásvédetté tétele
Szövegpuffer kiosztása
Amikor a rendszer létrehoz egy szerkesztési vezérlőt, automatikusan létrehoz egy szövegpuffert, beállítja a kezdeti méretet, és szükség szerint növeli a méretet. Egysoros szerkesztési vezérlők esetében a méret legfeljebb egy körülbelül 32 kilobájtos (KB) előre meghatározott korlát lehet. Mivel ez a korlát változhat, ezt soft limitnek nevezzük. Az alkalmazások egy EM_SETLIMITTEXT üzenet szerkesztési vezérlőbe való küldésével beállíthatják a pufferméretre vonatkozó korlátot. Ha a puffer túllépi a korlátot, a rendszer egy EN_ERRSPACE értesítési kódot küld az alkalmazásnak. Egy alkalmazás egy EM_GETLIMITTEXT üzenet küldésével lekérheti az aktuális szövegkorlátot.
A rendszer általában létrehoz egy szerkesztésvezérlő puffert egy párbeszédpanelen, amely az alkalmazás adatszegmensén kívüli memóriát használ. Az alkalmazások letilthatják ezt az alapértelmezett foglalási viselkedést, és létrehozhatják a puffert a helyi halomból a DS_LOCALEDIT stílus használatával (lásd a párbeszédpanel-sablonstílusokat A párbeszédpanelek névjegye) szakaszában a szerkesztési vezérlő létrehozásakor. A DS_LOCALEDIT stílust használó alkalmazás felelős az összes pufferfoglalásért. A kezdeti lefoglalás elvégzéséhez az alkalmazás meghívhatja a LocalAlloc függvényt, és egy EM_SETHANDLE üzenet küldésével továbbíthatja a visszaadott pufferfogópontot a szerkesztési vezérlőnek. A későbbi foglalások elvégzéséhez (például egy EN_ERRSPACE értesítési kódra válaszul) az alkalmazásnak mentenie kell az aktuális puffertartalmat (ha szükséges), és be kell szereznie egy új puffert az alábbiak szerint.
Az aktuális puffer mentéséhez és egy új beszerzéséhez kövesse ezt az eljárást.
- Adja vissza a többsoros szerkesztési vezérlő memóriájának leíróját, amely jelenleg a szöveghez van lefoglalva, azáltal, hogy elküld egy EM_GETHANDLE üzenetet a vezérlőnek.
- A puffer felszabadítása a LocalFree függvény meghívásával.
- Szerezze be az új puffert (és a pufferfogópontot) a LocalAllocmeghívásával.
- A vezérlő EM_SETHANDLE üzenet küldésével adja meg a pufferfogópontot a rendszernek.
A EM_SETHANDLE és EM_GETHANDLE üzenetek csak a többsoros szerkesztési vezérlőkre vonatkoznak.
Az alapértelmezett foglalási viselkedést használó alkalmazások (azaz nem használják a DS_LOCALEDIT stílust (lásd a párbeszédpanelsablonok stílusát a Párbeszédpanel-sablonstílusok)) nem küldhetnek EM_SETHANDLE és EM_GETHANDLE üzeneteket a szerkesztési vezérlőnek.
Az EM_SETHANDLE üzenet elküldésének számos mellékhatása van: törli a visszavonás jelzőt (így az EM_CANUNDO üzenet nullát ad vissza), törli a módosítási jelzőt (így a EM_GETMODIFY üzenet nullát ad vissza), és újrarajzolva a szerkesztési vezérlőablakot.
Szövegpuffer inicializálása
Az alkalmazások inicializálhatják vagy újrainicializálhatják a szerkesztési vezérlő szövegpufferét a SetDlgItemText függvény meghívásával. Az alkalmazások a GetDlgItemText függvény meghívásával lekérhetik a szövegpuffer tartalmát.
Szövegpuffer írásvédetté tétele
Minden szerkesztési vezérlő esetében a rendszer egy írásvédett jelzőt tart fenn, amely jelzi, hogy a vezérlő szövege olvasási/írási (alapértelmezett) vagy írásvédett. Egy alkalmazás beállíthatja az olvasási/írási jelzőt vagy az írásvédett jelzőt a szöveg számára a vezérlőelem EM_SETREADONLY üzenet küldésével. Annak megállapításához, hogy egy szerkesztési vezérlő írásvédett-e, az alkalmazás meghívhatja a GetWindowLong függvényt a GWL_STYLE állandó használatával. A EM_SETREADONLY üzenet az egysoros és a többsoros szerkesztési vezérlőkre egyaránt vonatkozik.
A formázási téglalap módosítása
A szerkesztési vezérlő szövegének láthatóságát az ablak téglalapjának méretei és formázási téglalapja szabályozza. Az ablak téglalapja a szerkesztési vezérlőt tartalmazó ablak ügyfélterülete. A formázási téglalap egy olyan szerkezet, amelyet a rendszer az ablak téglalapjában megjelenő szöveg formázására tart fenn. Amikor először megjelenik egy szerkesztési vezérlő, a két téglalap azonos a képernyőn. Egy alkalmazás a formázási téglalapot az ablak téglalapnál nagyobbra (ezáltal a szerkesztési vezérlő szövegének láthatóságát korlátozva) vagy kisebbre teheti, mint az ablak téglalapja (ezáltal további üres terület jön létre a szöveg körül).
Egy alkalmazás EM_SETRECT üzenet küldésével beállíthatja a szerkesztési vezérlő formázási téglalapjának koordinátáit. A EM_SETRECT üzenet automatikusan újrarajzozza a szerkesztési vezérlő szövegét is. Ha a formázási téglalap koordinátáit a vezérlő szövegének újraírása nélkül szeretné meghatározni, az alkalmazás elküldhet egy EM_SETRECTNP üzenetet a vezérlőnek. A formázási téglalap koordinátáinak lekéréséhez az alkalmazás elküldhet egy EM_GETRECT üzenetet a vezérlőnek. Ezek az üzenetek csak a többsoros szerkesztési vezérlőkre vonatkoznak.
Vezérlőértesítési üzenetek szerkesztése
A felhasználó a billentyűzet és az egér használatával végzi a szerkesztési kéréseket. A rendszer minden kérést egy WM_COMMAND üzenet formájában küld a szerkesztési vezérlő szülőablakának. Az üzenet tartalmazza a szerkesztésvezérlő azonosítóját a wParam paraméter alacsonyrendű szójában, az lParam paraméter szerkesztési vezérlőjének kezelőjét, valamint a wParam paraméter magasrendű szójában a felhasználó műveletének megfelelő szerkesztésvezérlési értesítési kódot.
Az alkalmazásnak meg kell vizsgálnia az egyes értesítési üzenetekhez tartozó értesítési kódokat, és megfelelően kell válaszolnia. Az alábbi táblázat felsorolja a szerkesztési vezérlő értesítési kódját és az azt létrehozó műveletet.
Értesítési kód | Felhasználói művelet |
---|---|
EN_CHANGE | A felhasználó módosította a szöveget egy szerkesztési vezérlőben. A rendszer frissíti a kijelzőt, mielőtt elküldené ezt az értesítési kódot (ellentétben EN_UPDATE). |
EN_ERRSPACE | A szerkesztési vezérlő nem tud elegendő memóriát lefoglalni egy adott kérés teljesítéséhez. |
EN_HSCROLL | A felhasználó a szerkesztési vezérlő vízszintes görgetősávjára kattintott. A rendszer a képernyő frissítése előtt elküldi ezt az értesítési kódot. |
EN_KILLFOCUS | A felhasználó kijelölt egy másik vezérlőt. |
EN_MAXTEXT | Szöveg beszúrása közben a felhasználó túllépte a szerkesztési vezérlőelemhez megadott számú karaktert. A beszúrás lerövidült. Ezt az értesítési kódot akkor is elküldi a rendszer, ha egy szerkesztési vezérlő nem rendelkezik a ES_AUTOHSCROLL stílusával, és a beszúrni kívánt karakterek száma meghaladja a szerkesztési vezérlő szélességét, vagy ha egy szerkesztési vezérlő nem rendelkezik a ES_AUTOVSCROLL stílusával, és a beszúrni kívánt sorok száma meghaladja a szerkesztési vezérlő magasságát. |
EN_SETFOCUS | A felhasználó kiválasztotta ezt a szerkesztési vezérlőt. |
EN_UPDATE | A felhasználó módosította a szöveget a szerkesztési vezérlőben, és a rendszer az új szöveg megjelenítésére készül. A rendszer a szöveg formázása után, de a megjelenítés előtt elküldi ezt az értesítési kódot, hogy az alkalmazás átméretezhesse a szerkesztési vezérlőablakot. |
EN_VSCROLL | A felhasználó a szerkesztési vezérlő függőleges görgetősávjára kattintott, vagy az egérmutatót a szerkesztési vezérlő fölé görgette. A rendszer a képernyő frissítése előtt elküldi ezt az értesítési kódot. |
EN_SEARCHWEB | A felhasználó a "Keresés a weben" helyi menübejegyzésre kattintott. A rendszer a böngésző elindítása után küldi el ezt az értesítést. |
Emellett a rendszer WM_CTLCOLOREDIT üzenetet küld a szerkesztési vezérlő szülőablakának a szerkesztési vezérlő rajzolása előtt. Ez az üzenet a szerkesztő vezérlő megjelenítési környezetének (DC) leíróját és a gyerekablak leíróját tartalmazza. A szülőablak ezen fogópontok használatával módosíthatja a szerkesztési vezérlő szövegét és háttérszíneit.
Vezérlő alapértelmezett üzenetfeldolgozásának szerkesztése
Az előre definiált szerkesztési vezérlőablak-osztály ablakműmenete az összes olyan üzenet alapértelmezett feldolgozását végzi, amelyet a szerkesztésvezérlési eljárás nem dolgoz fel. Amikor a szerkesztési vezérlési eljárás HAMIS ad vissza minden üzenethez, az előre definiált ablakművelet ellenőrzi az üzeneteket, és végrehajtja az alábbi alapértelmezett műveleteket.
Üzenet | Alapértelmezett művelet |
---|---|
EM_CANUNDO | Igaz ad vissza, ha a szerkesztésvezérlési művelet visszavonható. |
EM_CHARFROMPOS | A megadott ponthoz legközelebbi karakter karakterindexét és sorindexét adja vissza. |
EM_EMPTYUNDOBUFFER | Kiüríti a visszavonási puffert, és a EM_CANUNDO üzenet által lekért visszavonási jelzőt FALSEértékre állítja. A rendszer automatikusan törli a visszavonási jelzőt, amikor a szerkesztési vezérlő WM_SETTEXT vagy EM_SETHANDLE üzenetet kap. |
EM_FMTLINES | A többsoros szerkesztési vezérlőben a becsomagolt vonalak végeihez lágy vonaltörési karaktereket (két kocsivissza és egy vonalcsatorna) ad hozzá vagy távolít el. Az egysoros szerkesztési vezérlők által nincs feldolgozva. |
EM_GETFIRSTVISIBLELINE | Egy egysoros szerkesztési vezérlőelem első látható karakterének nulla alapú indexét adja vissza, vagy a többsoros szerkesztési vezérlők legfelső látható vonalának nulla alapú indexét. |
EM_GETHANDLE | Egy fogantyút ad vissza, amely azonosítja a többsoros szerkesztési vezérlő szövegét tartalmazó puffert. Az egysoros szerkesztési vezérlők nem dolgozzák fel. |
EM_GETLIMITTEXT | Az aktuális szövegkorlátot adja vissza karakterekben. |
EM_GETLINE | Egysoros szerkesztési vezérlőben lévő karaktereket másol egy pufferbe, és visszaadja a másolt karakterek számát. Többsoros szerkesztési vezérlőben lekéri a szövegsort a vezérlőből, és visszaadja a másolt karakterek számát. |
EM_GETLINECOUNT | A szerkesztési vezérlőben lévő sorok számát adja vissza. |
EM_GETMARGINS | A bal és a jobb margó szélességét adja vissza. |
EM_GETMODIFY | Egy jelölőt ad vissza, amely jelzi, hogy a szerkesztési vezérlő tartalma módosult-e. |
EM_GETPASSWORDCHAR | Azt a karaktert adja vissza, amelyet a szerkesztési vezérlőelemek a ES_PASSWORD stílussal együtt használnak. |
EM_GETRECT | A formázási téglalap koordinátáit adja vissza egy szerkesztési vezérlőben. |
EM_GETSEL | Az aktuális kijelölés kezdő és befejező karakterpozícióit adja vissza a szerkesztési vezérlőben. |
EM_GETTHUMB | A többsoros szerkesztési vezérlő függőleges görgetősávjában lévő görgetőmező pozícióját adja vissza. |
EM_GETWORDBREAKPROC | Az aktuális Wordwrap függvény címét adja vissza egy szerkesztési vezérlőben. |
EM_LINEFROMCHAR | Egy megadott karakterindexet tartalmazó többsoros szerkesztési vezérlőben lévő sor nullaalapú számát adja vissza. Ez az üzenet a EM_LINEINDEX üzenet fordítottja. Az egysoros szerkesztési vezérlők nem dolgozzák fel. |
EM_LINEINDEX | Egy vonal karakterét adja vissza egy többsoros szerkesztési vezérlőben. Ez az üzenet a EM_LINEFROMCHAR üzenet fordítottja. Azt nem dolgozzák fel az egysoros szerkesztési vezérlők. |
EM_LINELENGTH | Egy egysoros szerkesztési vezérlőelem hosszát adja vissza karakterekben. Többsoros szerkesztési vezérlőben egy megadott sor hosszát adja vissza karakterekben. |
EM_LINESCROLL | Függőlegesen görgeti a szöveget egy egysoros szerkesztési vezérlőben vagy vízszintesen egy többsoros szerkesztési vezérlőben (ha a vezérlőelem ES_LEFT stílussal rendelkezik). Az lParam paraméter az aktuális sortól kezdődően meghatározza a függőlegesen görgetni kívánt vonalak számát. A wParam paraméter határozza meg a vízszintesen görgethető karakterek számát az aktuális karaktertől kezdve. |
EM_POSFROMCHAR | A megadott karakter ügyfélkoordinátáit adja vissza. |
EM_REPLACESEL | Lecseréli az aktuális kijelölést egy alkalmazás által megadott puffer szövegével, értesítési kódokat küld a szülőablaknak: EN_UPDATE és EN_CHANGE, majd frissíti a visszavonási puffert. |
EM_SCROLL | Függőlegesen görgeti a szöveget egy többsoros szerkesztési vezérlőben. Ez az üzenet egyenértékű azzal, ha WM_VSCROLL üzenetet küld a szerkesztési vezérlőnek. Egysoros szerkesztési vezérlők által nem kerül feldolgozásra. |
EM_SCROLLCARET | Egy szerkesztő mezőben görgeti a kurzort látható helyzetbe. |
EM_SETFONT | Nem támogatott. |
EM_SETHANDLE | Beállít egy fogópontot a szövegpufferként használt memóriára, kiüríti a visszavonási puffert, nullára állítja a görgetési pozíciókat, és újrarajzolhatja az ablakot. |
EM_SETLIMITTEXT | Megadja, hogy a felhasználó hány karaktert írhat be a szerkesztési vezérlőbe. Egysoros szerkesztési vezérlők esetén ez az érték 0x7FFFFFFE vagy a wParam paraméter értéke, amelyik kisebb. Többsoros szerkesztési vezérlők esetén ez az érték vagy 1, vagy a wParam paraméter értéke, attól függően, hogy melyik kisebb. |
EM_SETMARGINS | Beállítja a bal és a jobb margó szélességét, és újrarajzozza a szerkesztési vezérlőt, hogy tükrözze az új margókat. |
EM_SETMODIFY | Beállítja vagy törli a módosításjelzőt annak jelzésére, hogy a szerkesztési vezérlő módosult-e. |
EM_SETPASSWORDCHAR | Meghatározza azt a karaktert, amelyet a vezérlők a ES_PASSWORD stílussal együtt használnak a szerkesztés során. |
EM_SETREADONLY | Beállítja vagy eltávolítja az olvasásvédett módot (ES_READONLY) egy szerkesztési vezérlőben. |
EM_SETRECT | Beállítja a formázási téglalapot a többsoros szerkesztési kontrollhoz, és újrarajzolja az ablakot. Az egysoros szerkesztési vezérlőkkel nem történik meg a feldolgozás. |
EM_SETRECTNP | Beállítja a formázási téglalapot a többsoros szerkesztési vezérlőhöz, de nem módosítja újra az ablakot. Az egysoros szerkesztési vezérlők nem dolgozzák fel. |
EM_SETSEL | Kijelöl egy karaktertartományt a szerkesztési vezérlőben a kijelölendő kezdő és záró pozíciók beállításával. |
EM_SETTABSTOPS | Tabulátorpontok beállítása a többsoros szerkesztőben. Nem az egysoros szerkesztési vezérlők dolgozzák fel. |
EM_SETWORDBREAKPROC | Az alapértelmezett Wordwrap-függvényt egy alkalmazás által definiált Wordwrap-függvényre cseréli. |
EM_UNDO | Eltávolítja az imént beszúrt vagy törölt karaktereket, és a kijelölést a beszúrt szövegre állítja. Szükség esetén elküldi a EN_UPDATE és EN_CHANGE értesítési kódokat a szülőablakba. |
WM_CHAR | Egy karaktert ír az egysoros szerkesztési vezérlőbe, és elküldi a EN_UPDATE és EN_CHANGE értesítési kódokat a szülőablakba. Karaktert ír a többsoros szerkesztési vezérlőbe. Kezeli a szabványos függvények gyorsítókulcsait, például a másoláshoz a CTRL+C billentyűkombinációt, a beillesztéshez pedig a CTRL+V billentyűkombinációt. A többsoros szerkesztési vezérlőkben a TAB és a CTRL+TAB billentyűkombinációkat is feldolgozva lépkedhet a párbeszédpanel vezérlői között, és tabulátorokat szúrhat be többsoros szerkesztési vezérlőkbe. A MessageBeep függvényt használ illegális karakterek esetén. |
WM_CLEAR | Törli az aktuális kijelölést (ha van ilyen) egy szerkesztési vezérlőben. Ha nincs aktuális kijelölés, törli a kurzortól jobbra lévő karaktert. Ha a felhasználó lenyomja a SHIFT billentyűt, az kivágja a kijelölést a vágólapra, vagy törli a karaktert a simítótól balra, ha nincs kijelölés. Ha a felhasználó lenyomja a CTRL billentyűt, az törli a kijelölést, vagy ha nincs kijelölés, a sor végéig törli. |
WM_COPY | A szöveget a vágólapra másolja, kivéve, ha a stílus ES_PASSWORD; ebben az esetben az üzenet nullát ad vissza. |
WM_CREATE | Létrehozza a szerkesztési vezérlőt, és értesíti a szülőablakot IGAZ siker esetén vagy 1 sikertelenség esetén. |
WM_CUT | A kijelölést a vágólapra vágja, vagy törli a kurzortól balra lévő karaktert, ha nincs kijelölés. |
WM_ENABLE | Az egysoros szerkesztési mező téglalapját szürkére újrarajzolja. Egysoros és többsoros szerkesztési vezérlők engedélyezett állapotát adja vissza. |
WM_ERASEBKGND | Kitölti a többsoros szerkesztési vezérlőablakot a szerkesztési vezérlő aktuális színével. |
WM_GETDLGCODE | A következő értékeket adja vissza: DLGC_WANTCHARS, DLGC_HASSETSEL és DLGC_WANTARROWS. A többsoros szerkesztési vezérlőkben visszaadja a DLGC_WANTALLKEYS értéket is. Ha a felhasználó lenyomja az ALT+BACKSPACE billentyűkombinációt, az is visszaadja a DLGC_WANTMESSAGE értéket. |
WM_GETFONT | A vezérlő által használt betűtípus fogantyúját adja vissza, vagy NULL, ha a vezérlő a rendszer betűtípusát használja. |
WM_GETTEXT | Másolja a megadott számú karaktert egy pufferbe, és visszaadja a másolt karakterek számát. |
WM_GETTEXTLENGTH | A szerkesztési vezérlőben lévő szöveg hosszát adja vissza karakterekben. A hossz nem tartalmazza a null végződésű karaktert. |
WM_HSCROLL | A többsoros szerkesztési vezérlő szövegét vízszintesen görgeti, és kezeli a görgetődoboz mozgását. |
WM_KEYDOWN | Elvégzi a virtuális kulcskódok szabványos feldolgozását. |
WM_KILLFOCUS | Eltávolítja a szerkesztésvezérlő ablakának billentyűzetfókuszát, megsemmisíti a simítót, elrejti az aktuális kijelölést, és értesíti a szülőablakot, hogy a szerkesztési vezérlő elvesztette a fókuszt. |
WM_LBUTTONDBLCLK | Törli az aktuális kijelölést, és kijelöli a kurzor alatti szót. Ha a SHIFT billentyű lenyomva van, a kurzor alatti szóra kiterjeszti a kijelölést. |
WM_LBUTTONDOWN | Módosítja az aktuális beszúrási pontot. Ha a SHIFT billentyű lenyomva van, a kijelölést kiterjeszti a kurzor pozíciójára. A többsoros szerkesztési vezérlőkben is beállíthatja, hogy az időzítő automatikusan görgessen, amikor a felhasználó lenyomja az egérgombot a többsoros szerkesztés vezérlőablakán kívül. |
WM_LBUTTONUP | Felszabadítja az egérrögzítést, és beállítja a szöveg beszúrási pontját az egysoros szerkesztési vezérlőben. Többsoros szerkesztési vezérlőben az WM_LBUTTONDOWN üzenetben beállított időzítőt is leállítja. |
WM_MOUSEMOVE | A jelenlegi kijelölést módosítja az egysoros szerkesztési mezőben, ha az egérgomb le van nyomva. Többsoros szerkesztési vezérlőkben is beállíthatja, hogy az időzítő automatikusan görgessen, ha a felhasználó lenyomja az egérgombot a többsoros szerkesztési vezérlőablakon kívül. |
WM_NCCREATE | Mutató az ablak CREATESTRUCT szerkezetére. Ez az üzenet az ablak első létrehozásakor WM_CREATE üzenetbe kerül. |
WM_NCDESTROY | Felszabadítja a szerkesztési vezérlőablakhoz társított összes memóriát, beleértve a szövegpuffert, a visszavonási puffert, a tabulátorpuffert és az ecset kiemelését. |
WM_PAINT | Törli a hátteret, kitölti az ablakot a szerkesztési vezérlőablak aktuális színével, megrajzolja a szegélyt (ha van ilyen), beállítja a betűtípust, és bármilyen szöveget rajzol, és megjeleníti a szöveg beszúrási elemét. |
WM_PASTE | Szöveget illeszt be a vágólapról a szerkesztőablakba a kurzor pozíciójánál. |
WM_SETFOCUS | Beállítja a szövegszerkesztő vezérlő ablakának billentyűzetfókuszát (ha rejtett volt, megjeleníti az aktuális kijelölést, és létrehozza a kurzort). |
WM_SETFONT | Beállítja a betűtípust, és igény szerint újrarajzozza a szerkesztési vezérlőt. |
WM_SETTEXT | Szöveget másol az egysoros szerkesztési vezérlőbe, értesíti a szülőablakot, ha nincs elegendő memória, kiüríti a visszavonási puffert, és elküldi a EN_UPDATE és EN_CHANGE értesítési kódokat a szülőablakba. Többsoros szerkesztési vezérlőkben a sorok újracsomagolása (ha szükséges) és a görgetési pozíciók beállítása is megtörténik. |
WM_SIZE | Beállítja a szerkesztési vezérlőablak méretét, biztosítva, hogy a méret megfeleljen a karakter magasságának és szélességének. |
WM_SYSCHAR | Igaz ad vissza, ha a felhasználó lenyomja az ALT+BACKSPACE billentyűkombinációt; egyéb esetben nem hajt végre semmilyen műveletet. |
WM_SYSKEYDOWN | Visszavonja az utolsó műveletet, ha a felhasználó lenyomja az ALT+BACKSPACE billentyűkombinációt; egyéb esetben nem hajt végre semmilyen műveletet. |
WM_TIMER | Görgeti a szöveget a szerkesztési vezérlőablakban, ha a felhasználó lenyomja az egérgombot a többsoros szerkesztési vezérlőablakon kívül. |
WM_UNDO | Eltávolítja az imént beszúrt vagy törölt karaktereket, és a kijelölést a beszúrt szövegre állítja. Szükség esetén elküldi a EN_UPDATE és EN_CHANGE értesítési kódokat a szülőablakba. |
WM_VSCROLL | Függőlegesen görget egy többsoros szerkesztési vezérlőt, és kezeli a görgetődoboz mozgását. Az egysoros szerkesztési vezérlők nem képesek feldolgozni. |
Az előre definiált szerkesztési vezérlőablak-eljárás minden más üzenetet továbbít a DefWindowProc függvénynek az alapértelmezett feldolgozáshoz.