Api és freebasic

API és freebasic. (RichEdit: Basic)

A vezérlő is gondolt, mint funkcionálisan továbbfejlesztett szerkesztési eszközöket. Ez számos hasznos funkciók nem találhatók meg az egyszerű szerkesztő eszközök, mint például a képességét, hogy számos különböző típusú és betűméret, mélyebb szintű undo / redo, szöveges keresési művelet, beágyazott OLE-objektumok szerkesztésének támogatása drag and drop (fogd és vidd) stb Mivel RichEdit kontroll annyi funkciók, ez tárolja külön DLL-könyvtár. Ez azt is jelenti, hogy ahhoz, hogy használni, akkor egyszerűen nem elég ok InitCommonControls. más közös-ellenőrzés. Meg kell hívni LoadLibrary. letölteni RichEdit DLL.







A probléma az, hogy jelenleg három változatban RichEdit ellenőrzés. Version 1,2 és 3 Az alábbi táblázat mutatja a nevét a DLL minden verziója.

Az osztály neve Richedit'a

A fenti táblázat semmiképpen nem teljes: az imént felsorolt ​​fontos jellemzői.

Létrehozása RichEdit kontrola

Betöltése után richedit.dll, akkor hívja CreateWindowEx. hogy hozzon létre egy ellenőrzés. Használhatja a szerkesztő eszközök a CreateWindowEx stílusok és közös ablak stílusok kivéve ES_LOWERCASE, ES_UPPERCASE és ES_OEMCONVERT.

Az alapértelmezett szöveg- és háttérszín

Lehet, hogy a probléma a beírt szöveget és a háttér színe a szerkesztő eszközök. De ez a probléma már rögzített RichEdit ellenőrzés. Ahhoz, hogy a háttér színét RichEdit ellenőrzés, meg kell, hogy küldjön neki EM_SETBKGNDCOLOR. Ez az üzenet a következő szintaxist:

WParam == színű. A 0 érték ebben a paraméter azt jelzi, hogy a Windows a szín értéke a lParam a háttér színét. Ha ez az érték nulla, a Windows használja a Windows rendszer háttérszíne. Mivel ezt az üzenetet, hogy változtatni a háttér színét, meg kell tenni 0 wParam.
LParam == COLORREF meghatározza a szerkezet a kívánt színre telepíteni, ha wParam - 0.

Például, ha azt akarta, hogy a háttér színe kék, azt hogy ezt a kódot:

A szín a szöveg, RichEdit vezérlő létrehoz egy új üzenet, EM_SETCHARFORMAT. Ez az üzenet vezérli a szöveg formázását tartományban karakterek lefoglalni a teljes szöveget. Ez az üzenet a következő szintaxist:

WParam == formázási lehetőségek közül:

A művelet érinti az összes szöveget a kontroll.

A művelet működése csak a kijelölt szöveget

SCF_WORD vagy SCF_SELECTION

Ez érinti a szót a kiválasztás. Ha semmit nem osztottak ki, a művelet hatással lesz a megfelelő szót a kurzor pozíciójában. SCF_WORD zászló kell használni SCF_SELECTION.







LParam == mutató egy szerkezet vagy CHARFORMAT CHARFORMAT2. amely meghatározza a formázás a szöveget, amit szeretnél. CHARFORMAT2 csak a RichEdit 2.0 és újabb. Ez nem jelenti azt, hogy meg kell használni CHARFORMAT2 a RichEdit 2.0 vagy magasabb. Továbbra is használhatja CHARFORMAT. ha hozzáadjuk a CHARFORMAT2 funkciók nem kell.

szerkezet mérete. RichEdit ellenőrzés használja ezt a mezőt, hogy megállapítsa a változat a szerkezet, hogy ez vagy CHARFORMAT CHARFORMAT2

Bit zászlók, hogy melyik a következő tagok helyességét.

Karakter tömb null-terminált karakterlánc, amely meghatározza a betűtípus neve

A tanulmány a szerkezet, akkor látni fogja, hogy meg tudjuk változtatni a szöveg hatások (félkövér, dőlt, áthúzott, aláhúzott), a szöveg színét (crTextColor) és a font (típus / méret / karakterkészlet). Szöveg CFE_RPOTECTED zászló. Ez jelölve védett, ami azt jelenti, hogy amikor a felhasználó megpróbál változtatni, a szülő ablak kap értesítést EN_PROTECTED. És akkor sem engedélyezi-e a változásokat.

CHARFORMAT2 hozzáteszi nagyszámú szöveg stílusokat, mint például a betűtípus súly, távolság, szöveg háttérszínt, alávágást stb Ha nem kell a következő kiegészítő funkciókat, csak használja CHARFORMAT.

A szöveg formátumú, meg kell adni a különböző szöveget, amelyre alkalmazni szeretné a formátumot. RichEdit kontroll rendel minden karakter egy szám (ID), kezdve 0: az első karakter az azonosító 0, a második - 1, és így tovább. Megadásához egy szöveget, meg kell adni RichEdit ellenőrzés, két szám: az azonosító az első és utolsó karaktere a tartományban. Ahhoz, hogy formázni a szöveget EM_SETCHARFORMAT. Van 3 választás:
  1. Alkalmazás az összes szöveg (SCF_ALL)
  2. Alkalmazás a kijelölt szöveg (SCF_SELECTION)
  3. Alkalmazás a teljes szót a kiválasztott területen (SCF_WORD vagy SCF_SELECTION)

Az első és a második közvetlen választások, az utóbbi némi magyarázatot igényel. Ha a jelenlegi kínálatban csak egy vagy több karaktert a szó, de nem a teljes szót, meghatározó zászló SCF_WORD + SCF_SELECTION. alkalmazni a szöveg formázását, hogy a teljes szót. Még ha semmi nincs kijelölve, a formázás alkalmazni a teljes szó, amely felett a beszúrási pontot.

Ahhoz, hogy használni EM_SETCHARFORMAT. El kell végeznie néhány tagja CHARFORMAT struktúrát (vagy CHARFORMAT2). Például, ha azt akarjuk, hogy a szín a szöveg, akkor töltse ki CHARFORMAT szerkezete a következő:

Ezt a kódrészletet beállítja a szöveg színét RichEdit kontroll kék. Felhívjuk figyelmét, hogy ha nincs ellenőrzés RichEdit szövegben, amikor küldünk egy üzenetet EM_SETCHARFORMAT. beírt szöveg RichEdit ellenőrzés után jelentést fogja használni a szöveges formátumban megadott EM_SETCHARFORMAT üzenetet.

Beállítása a szöveg / mentése a szöveg

Azok, akik már használják az Edit ellenőrzés, valószínűleg ismeri WM_GETTEXT / WM_SETTEXT. beállításához / kap a szöveg a \ az ellenőrzés. Ez a módszer működik RichEdit szabályozás, de nem működnek a nagy fájlokat. Szerkesztése szabályozás korlátozza a szöveget, hogy lehet illeszteni azt 64K, de RichEdit kontroll tudja fogadni a szöveget még sok más. Nem lenne helyes döntés kiosztani egy nagy blokk memória (például 10 MB), hogy a szöveget WM_GETTEXT. RichEdit ellenőrzés új megközelítést kínál ez a módszer, mint a szöveges közvetítés.

Mindkét üzenetek EM_STREAMIN EM_STREAMOUT és ugyanazt a szintaxist használja:

Az adatok RTF (Rich Text formátum)