A kocsi (nem több mint)

segítségével beállított alapértelmezett arányos font. Annak érdekében, hogy a kiegyenlített képet kódot kimeneti soronként kellene osztva kilenc részből áll. Annak elkerülése érdekében, ezeket a nehézségeket, akkor sokkal könnyebb, ha csak egy fix font. Amint az előző fejezetben, hogy kell két funkció, melyek kombinációja egy nyilatkozatot:







KEYLOOK program hívja ezt a két funkciót, ahol ez lesz a készülék összefüggésben. Ez történik a három helyen: a ShowKey funkciót. feldolgozása közben WM_CREATE üzenetet WndProc és feldolgozásának WM_PAINT üzeneteket. GetStockObject funkciót kap egy fogantyú a szabványos grafikus objektumot, amely a fix használt betűtípus korábbi verziójú Windows előtt Windows 3.0. Hívás SelectObject funkció kiválasztja az objektumot a készülék összefüggésben. Ezzel a hívást, a teljes szöveg jelenik meg a képernyőn rögzített font. Menj vissza arányos font segítségével a függvény:

ShowKey ScrollWindow függvényhívásokkal hogy felfelé előző sor kiadása előtt egy új sort. Általában ez vezet az a tény, hogy az ablak érvénytelenítik, és ezért nem termel WM_PAINT üzenetet. Ennek elkerülése érdekében a ShowKey funkcióit, beleértve a függvényhívás

KEYLOOK program nem tárolja üzeneteket kapott hardveres billentyűzet, így miután megkapta WM_PAINT üzenetet, akkor nem rajzolja újra az ablakot. Emiatt KEYLOOK egyszerűen kiírja a táblázat fejlécében a tetején a munkaterület feldolgozása során WM_PAINT üzenetet. Mielőtt hívja a BeginPaint funkciót. feldolgozásakor a WM_PAINT üzenet KEYLOOK érvényteleníti az egész ablakot. Ez lehetővé teszi, hogy törölje az összes ablak törlése helyett érvénytelen téglalap.

(Ez KEYLOOK program nem tárolja által kapott üzeneteket billentyűzet hardver, és ezért nem rajzolja újra a képernyőt, amíg feldolgozott WM_PAINT üzenet minden bizonnyal hátrányos. A Typer bemutatott program később ebben a fejezetben, ez a hátrány kiküszöbölhető.)

A tetején a munkaterület KEYLOOK program felhívja táblázat fejléce és így azonosítja kilenc oszlop. Bár lehet létrehozni egy font, amelyben a karakterek vannak húzva, itt némileg eltérő megközelítés. Amelyet két típusú változók karakterlánc nevezett szTop (ez tartalmazza a szöveget), és szUnd (ez tartalmazza az aláhúzás), valamint a feldolgozás WM_PAINT üzenetek jelennek meg ugyanabban a helyzetben az ablak felső részén. Normális esetben a Windows megjeleníti a szöveges mód „átláthatatlan”, ami azt jelenti, hogy a Windows-frissítések a karakter alapterületen annak kimenetét a képernyőre. Ebben az üzemmódban a háttérben okozhat a második karakterlánc (szUnd) első törlési (szTop). Ennek elkerülése érdekében a készüléket beállíthatjuk úgy kontextusban „átlátható” módban (nincs keret karakter háttérben):







Amikor szöveget a program, általában egy kis aláhúzás, vagy egy kis téglalap megmutatja a helyet, ahol a következő karakter hívott jelenik meg a képernyőn. Lehet, úgy gondolja, hogy ez a kurzor (kurzor), de ha a programozás Windows, akkor utasíthatja el az ilyen ábrázolás. A Windows, ez az úgynevezett „kocsi” (kalap). A „kurzor” kifejezés a bitmap, amely tükrözi a helyzet az egér a képernyőn.

A funkció a kocsi

Öt alapvető funkciók működnek a kocsi:

• CreateCaret - létrehoz egy ablak kapcsolódik a kocsi.

• SetCaretPos - állítja a helyzet a kocsi ablakán.

• ShowCaret - mutat a kocsi.

• HideCaret - elrejti a kocsi.

• DestroyCaret - eltávolítja a kocsi.

Amellett, hogy ezeket, még mindig van egy funkció megszerzése helyzetét a kocsi (GetCaretPos) és beállítási funkció, és megszerezze a villogás frekvenciája a kocsi (GetCaretBlinkTime) és (SetCaretBlinkTime).

Kocsi - ez általában vízszintes vonal vagy téglalap, a betűméret, vagy függőleges vonal. Függőleges sáv használata javasolt, ha arányos font, így a rendszer alapértelmezett betűtípus meghatározott Windows. Mivel a mérete arányos font karakterek nem rögzített, vízszintes vonalak és téglalapok nem lehet beállítani a méret a szimbólum.

Nem lehet csak létrehozni egy kalap feldolgozásában WM_CREATE üzenetet, és törölni feldolgozásakor WM_DESTROY üzenetet. Kocsi - ez az, amit az úgynevezett „rendszerszintű erőforrás” (rendszerszintű erőforrás). Ez azt jelenti, hogy a rendszer csak egy kocsi. És ennek eredményeként, a program, ha szükséges, a visszavonás a kocsi a képernyőn az ablak „kölcsön” a rendszerből.

Feldolgozás és WM_SETFOCUS WM_KILLFOCUS üzenetek, a program meg tudja határozni, hogy van-e a bemeneti hangsúly. Az ablakkezelő eljárás megkapja az üzenetet WM_SETFOCUS, amikor megkapja a beviteli fókuszt és az üzenet WM_KILLFOCUS, amikor elveszíti a fókuszt. Ezek az üzenetek jönnek párban: az ablak eljárás megkapja az üzenetet WM_SETFOCUS előtt mindig WM_KILLFOCUS kapja meg az üzenetet, és ő mindig ugyanazt a mennyiségű WM_SETFOCUS és WM_KILLFOCUS üzenetek élettartama alatt az ablakon.

Az alapvető szabály alkalmazásával kocsi egyszerűnek tűnik: az ablak eljárás hívások CreateCaret funkció feldolgozása során üzenetek és WM_SETFOCUS DestroyCaret funkció feldolgozásakor WM_KILLFOCUS üzenetét.

Számos más szabályok vonatkoznak: hozzon létre egy rejtett csúszda. Hívása után CreateCaret funkciót. ablak eljárást kell hívni ShowCaret funkciót. hogy a kalap látható. Amellett, hogy ez az ablak eljárást, amikor bevonja az ablakon, amikor az üzenet feldolgozása eltérő WM_PAINT, ki kell terjednie a kocsi, ami HideCaret funkciót. Miután az ablakot eljárás befejezéséhez rajz egy ablakban, ez okozza ShowCaret funkciót. ismét, hogy a kocsit a képernyőn. HideCaret funkció rendelkezik egy további hatása: ha többször hívja HideCaret. anélkül ShowCaret. a kocsi ismét látható legyen, akkor ugyanannyi időt okoz ShowCaret funkciót.

programot Typer

GetStockObject és SelectObject.

Amikor üzeneteket dolgoz WM_SIZE Typer program kiszámolja a szélessége és magassága az ablak karakterek, és tárolja ezeket az értékeket a változók és cxBuffer cyBuffer. Ezután használja a malloc függvény. puffert kiosztani, hogy tartsa az összes karakter lehet nyomtatni az ablakban. A változók és a Xcaret yCaret megtartotta pozícióját a kocsi karaktereket.

Üzenet feldolgozása közben, a program kéri WM_SETFOCUS typer CreateCaret úgy működnek, hogy hozzon létre egy kocsi, amelynek szélessége és magassága egy karakter, SetCaretPos működnek, hogy állítsa be a pozícióját a kocsi és ShowCaret funkciót. hogy a kalap látható. Üzenet feldolgozása közben, a program kéri WM_KILLFOCUS HideCaret funkció és DestroyCaret.

# TYPER.MAK hogy a fájl

$ (LINKER) $ (GUIFLAGS) kijelentkezés: typer.exe typer.obj $ (GUILIBS)

$ (CC) $ (CFLAGS) typer.c