Megosztás:


Low-Level konzol kimeneti függvényei

Fontos

Ez a dokumentum a konzolplatform azon funkcióit ismerteti, amelyek már nem részei az ökoszisztéma ütemtervének. Nem javasoljuk, hogy ezt a tartalmat új termékekben használja, de továbbra is támogatni fogjuk a határozatlan időre vonatkozó meglévő használatokat. Előnyben részesített modern megoldásunk a virtuális terminálütemezésekre összpontosít a platformfüggetlen forgatókönyvek maximális kompatibilitása érdekében. Erről a tervezési döntésről a klasszikus konzol és a virtuális terminál dokumentumában talál további információt.

Az alacsony szintű konzolkimeneti függvények közvetlen hozzáférést biztosítanak a képernyőpuffer karaktercelláihoz. A függvények egy készlete a konzol képernyőpufferének bármely helyére beolvassa az egymást követő cellákat, vagy ír. Egy másik függvénykészlet a cellák négyszögletes blokkjaiból olvas vagy ír.

A következő függvények olvasása vagy írása egy adott számú egymást követő karaktercellába egy képernyőpufferben, egy megadott cellától kezdve.

Funkció Leírás
ReadConsoleOutputCharacter Unicode- vagy ANSI-karakterekből álló sztringet másol egy képernyőpufferből.
WriteConsoleOutputCharacter Unicode- vagy ANSI-karakterekből álló sztringet ír egy képernyőpufferbe.
ReadConsoleOutputAttribute Szöveg- és háttérszínattribútumokat másol egy képernyőpufferből.
WriteConsoleOutputAttribute Szöveg- és háttérszínattribútumokat ír egy képernyőpufferbe.
FillConsoleOutputCharacter Egyetlen Unicode- vagy ANSI-karaktert ír egy adott számú egymást követő cellába egy képernyőpufferben.
FillConsoleOutputAttribute Szöveg- és háttérszínattribútum-kombinációt ír egy adott számú egymást követő cellába egy képernyőpufferben.

Az összes ilyen függvény esetében, amikor egy sor utolsó celláját észleli, az olvasás vagy írás a következő sor első cellájába kerül. Amikor a konzol képernyőpufferének utolsó sorának vége megjelenik, az írási függvények elvetik az összes íratlan karaktert vagy attribútumot, és az olvasási függvények a ténylegesen írt karakterek vagy attribútumok számát jelentik.

Az alábbi függvények a képernyőpuffer megadott helyén lévő karaktercellák négyszögletes blokkjából olvasnak vagy írnak.

Funkció Leírás
ReadConsoleOutput Karakter- és színadatokat másol egy adott képernyőpuffercellából egy adott blokkba egy célpufferben.
WriteConsoleOutput Karakter- és színadatokat ír egy adott blokkból származó képernyőpuffercellák egy adott blokkjára egy forráspufferben.

Ezek a függvények CHAR_INFO struktúrák kétdimenziós tömbjeként kezelik a képernyőpuffereket és a forrás- vagy célpuffereket (az egyes cellák karakter- és színattribútum-adatait tartalmazzák). A függvények a forrás- vagy célpuffer szélességét és magasságát határozzák meg karaktercellákban, a pufferre mutató mutatót pedig a kétdimenziós tömb forráscellájára mutató mutatóként (0,0) kezeli a rendszer. A függvények egy SMALL_RECT szerkezettel határozzák meg, hogy melyik téglalap legyen elérhető a konzol képernyőpufferében, és a forrás- vagy célpuffer bal felső cellájának koordinátái határozzák meg a megfelelő téglalap helyét a pufferben.

Ezek a függvények automatikusan kivágják a megadott képernyőpuffer téglalapját, hogy elférjenek a konzol képernyőpufferének határain belül. Ha például a téglalap a jobb alsó koordinátákat adja meg (100. oszlop, 50. sor), és a konzol képernyőpuffere csak 80 oszlop széles, a koordináták úgy vannak kivágva, hogy azok legyenek (79. oszlop, 50. sor). Hasonlóképpen, ez a módosított téglalap ismét ki van vágva, hogy elférjen a forrás- vagy célpuffer határain belül. Meg van adva annak a téglalapnak a képernyőpufferkoordinátái, amelyekről beolvasták vagy megírták. Az alábbi függvényeket használó példa: Karakter- és attribútumblokkok olvasása és írása.

Az ábrán egy ReadConsoleOutput művelet látható, amelyben a kivágás akkor történik, amikor a blokk beolvasva van a konzol képernyőpufferéből, majd ismét, amikor a blokkot a célpufferbe másolja. A függvény a tényleges képernyőpuffer-téglalapot jelenti, amelyből kimásolta.

képernyőpuffer ablak célpufferrel