Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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.