Aracılığıyla paylaş


Pencere ve Ekran Arabellek Boyutu

Ekran arabelleğinin boyutu, karakter hücrelerine dayalı koordinat kılavuzuyla ifade edilir. Genişlik, her satırdaki karakter hücresi sayısıdır ve yükseklik ise satır sayısıdır. Her ekran arabelleğiyle ilişkili, konsol penceresinde görüntülenen konsol ekranı arabelleğinin dikdörtgen bölümünün boyutunu ve konumunu belirleyen bir penceredir. Ekran arabelleğinin penceresi, pencerenin dikdörtgeninin sol üst ve sağ alt hücrelerinin karakter hücresi koordinatları belirtilerek tanımlanır.

Uyarı

Sanal terminal dizileri dünyasında, pencerenin boyutu ve ekran arabelleğinin boyutu aynı değere sabitlenir. Terminal, pencere boyutundan daha büyük bir ekran arabelleği boyutuna sahip bir konsolun eşdeğeri olacak herhangi bir kaydırma bölgesini işler. Bu içerik terminale aittir ve genel olarak artık adreslenebilir alanın bir parçası değildir. Daha fazla bilgi için lütfen klasik konsol işlevleriyle sanal terminal dizileri karşılaştırmamıza bakın.

Ekran arabelleği herhangi bir boyutta olabilir ve yalnızca kullanılabilir bellekle sınırlandırılabilir. Ekran arabelleğinin penceresinin boyutları, geçerli yazı tipi boyutuna göre (yalnızca kullanıcı tarafından denetlenen) konsol ekranı arabelleğinin veya ekrana sığabilecek maksimum pencerenin ilgili boyutlarını aşamaz.

GetConsoleScreenBufferInfo işlevi, ekran arabelleği ve penceresi hakkında aşağıdaki bilgileri döndürür:

  • Konsol ekranı arabelleğinin geçerli boyutu
  • Pencerenin geçerli konumu
  • Geçerli ekran arabelleği boyutu, geçerli yazı tipi boyutu ve ekran boyutu göz önüne alındığında pencerenin en büyük boyutu

GetLargestConsoleWindowSize işlevi, geçerli yazı tipine ve ekran boyutlarına göre konsolun penceresinin en büyük boyutunu döndürür. Bu boyut, konsol ekranı arabellek boyutunun yoksayıldığı için GetConsoleScreenBufferInfo tarafından döndürülen en büyük pencere boyutundan farklıdır.

Ekran arabelleğinin boyutunu değiştirmek için SetConsoleScreenBufferSize işlevini kullanın. Belirtilen boyuttan biri konsol penceresinin ilgili boyutundan küçükse bu işlev başarısız olur.

Ekran arabelleği penceresinin boyutunu veya konumunu değiştirmek için SetConsoleWindowInfo işlevini kullanın. Belirtilen pencere köşesi koordinatları konsol ekranı arabelleğinin veya ekranın sınırlarını aşarsa bu işlev başarısız olur. Etkin ekran arabelleğinin pencere boyutunun değiştirilmesi, ekranda görüntülenen konsol penceresinin boyutunu değiştirir.

Bir işlem, kullanıcı konsol ekranı arabellek boyutunu değiştirdiğinde girişi alabilmesi için pencere girişini etkinleştirmek için konsolunun giriş modunu değiştirebilir. Bir uygulama pencere girişini etkinleştirirse, başlangıçta pencere ve ekran arabelleği boyutunu almak için GetConsoleScreenBufferInfo kullanabilir. Bu bilgiler daha sonra verilerin pencerede görüntülenme şeklini belirlemek için kullanılabilir. Kullanıcı konsol ekranı arabellek boyutunu değiştirirse, uygulama verilerin görüntülenme biçimini değiştirerek yanıt verebilir. Örneğin, bir uygulama satır başına karakter sayısı değiştiğinde metnin satırın sonunda kaydırılıp kaydırılamadığını ayarlayabilir. Bir uygulama pencere girişini etkinleştirmezse, devralınan pencereyi ve ekran arabelleği boyutlarını kullanmalıdır veya başlatma sırasında bunları istenen boyuta ayarlamalı ve devralınan boyutları çıkışta geri yüklemelidir. Pencere giriş modu hakkında ek bilgi için bkz. konsol modlarınıLow-Level.