Sdílet prostřednictvím


Velikost vyrovnávací paměti okna a obrazovky

Velikost vyrovnávací paměti obrazovky se vyjadřuje v závislosti na mřížce souřadnic na základě buněk znaků. Šířka je počet buněk znaků v každém řádku a výška je počet řádků. Přidružené ke každé vyrovnávací paměti obrazovky je okno, které určuje velikost a umístění obdélníkové části vyrovnávací paměti obrazovky konzoly zobrazené v okně konzoly. Okno vyrovnávací paměti obrazovky je definováno zadáním souřadnic znakové buňky levého horního a pravého dolního okraje obdélníku okna.

Poznámka:

Ve světě posloupností virtuálních terminálů je velikost okna a velikost vyrovnávací paměti obrazovky pevné na stejnou hodnotu. Terminál zpracovává libovolnou oblast posuvu, která by byla ekvivalentem konzoly s velikostí vyrovnávací paměti obrazovky větší než velikost okna. Tento obsah patří do terminálu a obvykle už není součástí adresovatelné oblasti. Další informace najdete v našem porovnání klasických konzolových funkcí a sekvencí virtuálních terminálů.

Vyrovnávací paměť obrazovky může být libovolná velikost omezená pouze dostupnou pamětí. Rozměry okna vyrovnávací paměti obrazovky nesmí překročit odpovídající rozměry vyrovnávací paměti konzoly nebo maximálního okna, které se může na obrazovku vejít na základě aktuální velikosti písma (řízené výhradně uživatelem).

Funkce GetConsoleScreenBufferInfo vrátí následující informace o vyrovnávací paměti obrazovky a jeho okně:

  • Aktuální velikost vyrovnávací paměti obrazovky konzoly
  • Aktuální umístění okna
  • Maximální velikost okna vzhledem k aktuální velikosti vyrovnávací paměti obrazovky, aktuální velikosti písma a velikosti obrazovky

Funkce GetLargestConsoleWindowSize vrátí maximální velikost okna konzoly na základě aktuálního písma a velikosti obrazovky. Tato velikost se liší od maximální velikosti okna vrácené GetConsoleScreenBufferInfo v tom, že velikost vyrovnávací paměti konzoly je ignorována.

Pokud chcete změnit velikost vyrovnávací paměti obrazovky, použijte funkci SetConsoleScreenBufferSize . Tato funkce selže, pokud je jedna z dimenzí zadané velikosti menší než odpovídající dimenze okna konzoly.

Pokud chcete změnit velikost nebo umístění okna vyrovnávací paměti obrazovky, použijte funkci SetConsoleWindowInfo . Tato funkce selže, pokud zadané souřadnice rohu okna překročí limity vyrovnávací paměti konzoly nebo obrazovky. Změna velikosti okna aktivní vyrovnávací paměti obrazovky změní velikost okna konzoly zobrazeného na obrazovce.

Proces může změnit režim vstupu konzoly a povolit vstup okna tak, aby proces mohl přijímat vstupy, když uživatel změní velikost vyrovnávací paměti obrazovky konzoly. Pokud aplikace povolí vstup okna, může při spuštění načíst velikost okna a vyrovnávací paměti obrazovky pomocí GetConsoleScreenBufferInfo . Tyto informace pak můžete použít k určení způsobu zobrazení dat v okně. Pokud uživatel změní velikost vyrovnávací paměti obrazovky konzoly, aplikace může reagovat změnou způsobu zobrazení dat. Aplikace může například upravit způsob, jakým se text zalamuje na konci řádku, pokud se změní počet znaků na řádek. Pokud aplikace nepovolí vstup okna, musí buď použít zděděné okno a velikosti vyrovnávací paměti obrazovky, nebo je nastavit na požadovanou velikost během spouštění a obnovit zděděné velikosti při ukončení. Další informace o režimu zadávání oken najdete v tématu Low-Level režimy konzoly.