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.
A konzolablak az aktív képernyőpuffer egy részét jeleníti meg. Minden képernyőpuffer saját aktuális ablakkeretet tart fenn, amely meghatározza a bal felső és a jobb alsó karaktercellák koordinátáit, amelyeket a konzolablakban kell megjeleníteni. A képernyőpuffer aktuális ablak téglalapjának meghatározásához használja a GetConsoleScreenBufferInfo parancsot. Képernyőpuffer létrehozásakor az ablak bal felső sarka a konzol képernyőpufferének bal felső sarkában található (0,0).
Az ablak téglalapja úgy módosítható, hogy a konzol képernyőpufferének különböző részei jelenjenek meg. A képernyőpuffer ablak téglalapja a következő helyzetekben változhat:
Amikor a SetConsoleWindowInfo új ablak téglalap megadására van meghívva, az az ablak méretének módosítása nélkül görgeti a konzol képernyőpufferének nézetét az ablak téglalapjának pozíciójának módosításával. Az ablak tartalmának görgetésével kapcsolatban lásd a képernyőpuffer ablakának görgetését.
Ha a WriteFile függvénnyel olyan képernyőpufferbe ír, amelyen engedélyezve van a sorvégi (EOL) kimeneti mód, az ablak téglalapja automatikusan eltolódik, így a kurzor mindig megjelenik.
Ha a SetConsoleCursorPosition függvény az aktuális ablak téglalapjának határain kívül eső új kurzorpozíciót ad meg, az ablak téglalapja automatikusan eltolódik a kurzor megjelenítéséhez.
Ha a felhasználó módosítja a konzolablak méretét, vagy az ablak görgetősávját használja, az aktív képernyőpuffer ablakkerete megváltozhat. Ez a változás nem jelent ablakméretezéses eseményt a bemeneti pufferben.
Ezekben a helyzetekben az ablak téglalapja eltolódik a konzol képernyőpufferének egy másik részének megjelenítéséhez, de a konzol képernyőpufferének tartalma ugyanabban a helyzetben marad. Az alábbi helyzetek miatt a konzol képernyőpufferének tartalma eltolódik:
- A ScrollConsoleScreenBuffer függvény meghívásakor a rendszer egy téglalap alakú blokkot másol egy képernyőpuffer egyik részéből egy másikba.
- Ha a WriteFile használatával ír egy olyan képernyőpufferbe, amelyen engedélyezve van az EOL kimeneti mód, a konzol képernyőpufferének tartalma automatikusan görgethető, amikor a konzol képernyőpufferének vége megjelenik. Ez a görgetés elveti a konzol képernyőpufferének felső sorát.
A ScrollConsoleScreenBuffer megadja az áthelyezett konzolképernyő puffer téglalapját, valamint az új bal felső koordinátákat, amelyekbe a téglalapot másolja. Ez a függvény görgetheti a konzol képernyőpuffer egy részét vagy teljes tartalmát.
Az ábrán egy ScrollConsoleScreenBuffer művelet látható, amely több sornyira görgeti a konzol képernyőpufferének teljes tartalmát. A felső sorok tartalma el lesz vetve, az alsó sorok pedig egy megadott karakterrel és színnel vannak kitöltve.
A ScrollConsoleScreenBuffer hatása korlátozható egy opcionális kivágási téglalap megadásával, hogy a konzol képernyőpufferének tartalma a vágó téglalapon kívül ne változzon. A kivágás hatása egy olyan segédtekercs (a vágó téglalap) létrehozása, amelynek tartalma görgetve van a konzol többi képernyőpufferének befolyásolása nélkül. A ScrollConsoleScreenBuffert használó példáért tekintse meg a képernyőpuffer tartalmának görgetését.