Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ekran arabelleği, konsol penceresindeki çıktı için iki boyutlu bir karakter ve renk veri dizisidir. Konsolun birden çok ekran arabelleği olabilir. Etkin ekran arabelleği, ekranda görüntülenen arabellektir.
Sistem her yeni konsol oluşturduğunda bir ekran arabelleği oluşturur. Konsolun etkin ekran arabelleğine tanıtıcı açmak için CreateFile işlevine yapılan çağrıda CONOUT$ değerini belirtin. Bir işlem, konsolu için ek ekran arabellekleri oluşturmak için CreateConsoleScreenBuffer işlevini kullanabilir. SetConsoleActiveScreenBuffer işlevine yapılan bir çağrıda tutamacı belirtilene kadar yeni bir ekran arabelleği etkin değildir. Ancak, etkin veya etkin olmayan ekran arabelleklerine okuma ve yazma için erişilebilir.
Her ekran arabelleğinin kendi iki boyutlu karakter bilgisi kayıtları dizisi vardır. Her karakterin verileri Unicode veya ANSI karakterini ve bu karakterin görüntülendiği ön plan ve arka plan renklerini belirten CHAR_INFO bir yapıda depolanır.
Bir ekran arabelleği ile ilişkili bir dizi özellik, her ekran arabelleği için bağımsız olarak ayarlanabilir. Bu, etkin ekran arabelleğinin değiştirilmesinin konsol penceresinin görünümü üzerinde önemli bir etkisi olabileceği anlamına gelir. Ekran arabelleğiyle ilişkilendirilmiş özellikler şunlardır:
- Karakter satırları ve sütunlarında ekran arabelleği boyutu.
- Metin öznitelikleri ( WriteFile veya WriteConsole işlevi tarafından yazılacak metni görüntülemek için ön plan ve arka plan renkleri).
- Pencere boyutu ve konumu (konsol penceresinde görüntülenen konsol ekranı arabelleğinin dikdörtgen bölgesi).
- İmleç konumu, görünüm ve görünürlük.
- Çıkış modları (ENABLE_PROCESSED_OUTPUT ve ENABLE_WRAP_AT_EOL_OUTPUT). Konsol çıkış modları hakkında daha fazla bilgi için bkz. konsol modlarıHigh-Level.
Bir ekran arabelleği oluşturulduğunda, her konumda boşluk karakterleri içerir. İmleci görünür ve arabelleğin başlangıcına (0,0) yerleştirilir ve pencere, arabellecin kaynağında sol üst köşesi ile konumlandırılır. Konsol ekranı arabelleğinin boyutu, pencere boyutu, metin öznitelikleri ve imlecin görünümü kullanıcı tarafından veya sistem varsayılanları tarafından belirlenir. Konsol ekranı arabelleğiyle ilişkili çeşitli özelliklerin geçerli değerlerini almak için GetConsoleScreenBufferInfo, GetConsoleCursorInfo ve GetConsoleMode işlevlerini kullanın.
Konsol ekranı arabelleği özelliklerinden herhangi birini değiştiren uygulamalar kendi ekran arabelleği oluşturmalı veya başlatma sırasında devralınan ekran arabelleğinin durumunu kaydedip çıkışta geri yüklemelidir. Bu işbirliği davranışı, aynı konsol oturumunu paylaşan diğer uygulamaların değişikliklerden etkilenmediğinden emin olmak için gereklidir.
Tavsiye
Bu amaçla ikinci bir ekran arabelleği oluşturmak yerine mümkünse, ileriye doğru alternatif arabellek modunu kullanmanız önerilir. Alternatif arabellek modu , uzak cihazlarda ve diğer platformlarda daha fazla uyumluluk sunar. Daha fazla bilgi için lütfen klasik konsol API'leri ile sanal terminal arasındaki tartışmamıza bakın.
İmleç Görünümü ve Konumu
Ekran arabelleğinin imleci görünebilir veya gizlenebilir. Görünür olduğunda, bir karakter hücresinin tamamen doldurulmasından hücrenin alt kısmında yatay çizgi olarak görünmesine kadar uzanan bir görünüm değişebilir. İmlecin görünümü ve görünürlüğü hakkında bilgi almak için GetConsoleCursorInfo işlevini kullanın. Bu işlev, imlecin görünür olup olmadığını bildirir ve imlecin görünümünü doldurduğu karakter hücresinin yüzdesi olarak açıklar. İmlecin görünümünü ve görünürlüğünü ayarlamak için SetConsoleCursorInfo işlevini kullanın.
Üst düzey konsol G/Ç işlevleri tarafından yazılan karakterler, imleci sonraki konuma ilerleterek geçerli imleç konumunda yazılır. Ekran arabelleğinin koordinat sisteminde geçerli imleç konumunu belirlemek için GetConsoleScreenBufferInfo kullanın. SetConsoleCursorPosition işlevini kullanarak imleç konumunu ayarlayabilir ve böylece üst düzey G/Ç işlevleri tarafından yazılan veya yankılanan metnin yerleşimini denetleyebilirsiniz. İmleci taşırsanız, yeni imleç konumundaki metnin üzerine yazılır.
Uyarı
İmleç konumunu bulmak için alt düzey işlevlerin kullanılması önerilmez. Gelişmiş düzenler için gerekirse bu konumu sorgulamak için sanal terminal dizilerinin kullanılması önerilir. Sanal terminal dizilerini tercih etme hakkında daha fazla bilgi , klasik işlevler ve sanal terminal belgesinde bulunabilir.
İmlecin konumu, görünümü ve görünürlüğü her ekran arabelleği için bağımsız olarak ayarlanır.
Karakter Öznitelikleri
Karakter öznitelikleri iki sınıfa ayrılabilir: color ve DBCS. Üst bilgi dosyasında aşağıdaki öznitelikler tanımlanır WinCon.h .
| Özellik | Anlamı |
|---|---|
| FOREGROUND_BLUE | Metin rengi mavi renktedir. |
| FOREGROUND_GREEN | Metin rengi yeşil içerir. |
| FOREGROUND_RED | Metin rengi kırmızı içerir. |
| FOREGROUND_INTENSITY | Metin rengi yoğunlaştırılır. |
| BACKGROUND_BLUE | Arka plan rengi mavidir. |
| BACKGROUND_GREEN | Arka plan rengi yeşil içerir. |
| BACKGROUND_RED | Arka plan rengi kırmızı içerir. |
| BACKGROUND_INTENSITY | Arka plan rengi yoğunlaşmış. |
| COMMON_LVB_LEADING_BYTE | Baştaki bayt. |
| COMMON_LVB_TRAILING_BYTE | Sondaki bayt. |
| COMMON_LVB_GRID_HORIZONTAL | Üst yatay. |
| COMMON_LVB_GRID_LVERTICAL | Sol dikey. |
| COMMON_LVB_GRID_RVERTICAL | Sağ dikey. |
| COMMON_LVB_REVERSE_VIDEO | Ön plan ve arka plan özniteliklerini ters çevirin. |
| COMMON_LVB_UNDERSCORE | Alt çizgi. |
Ön plan öznitelikleri metin rengini belirtir. Arka plan öznitelikleri, hücrenin arka planını doldurmak için kullanılan rengi belirtir. Diğer öznitelikler DBCS ile birlikte kullanılır.
Bir uygulama, farklı renkler elde etmek için ön plan ve arka plan sabitlerini birleştirebilir. Örneğin, aşağıdaki bileşim mavi arka planda parlak mavi bir mavi metinle sonuçlanmıştır.
FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE
Arka plan sabiti belirtilmezse, arka plan siyah olur ve ön plan sabiti belirtilmezse metin siyah olur. Örneğin, aşağıdaki birleşim beyaz arka planda siyah metin oluşturur. Beyaz arka planla birleştirilen arka plan için kırmızı, yeşil ve mavi belirtilir. Ön plan için hiçbir bayrak rengi belirtilmediğinden siyahtır.
BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED
Her ekran arabelleği karakter hücresi, bu hücrenin ön planını (metin) ve arka planını çizerken kullanılan renklerin renk özniteliklerini depolar. Bir uygulama, her karakter hücresi için renk verilerini ayrı ayrı ayarlayabilir ve verileri her hücre için CHAR_INFO yapısının Öznitelikler üyesinde depolayabilir. Her ekran arabelleğinin geçerli metin öznitelikleri, daha sonra üst düzey işlevler tarafından yazılan veya yankılanan karakterler için kullanılır.
Bir uygulama, ekran arabelleğinin geçerli metin özniteliklerini belirlemek için GetConsoleScreenBufferInfo ve karakter özniteliklerini ayarlamak için SetConsoleTextAttribute işlevini kullanabilir. Ekran arabelleğinin özniteliklerinin değiştirilmesi, daha önce yazılmış karakterlerin görüntülenmesini etkilemez. Bu metin öznitelikleri, alt düzey konsol G/Ç işlevleri ( WriteConsoleOutput veya WriteConsoleOutputCharacter işlevi gibi) tarafından yazılan ve yazılan her hücrenin özniteliklerini açıkça belirten veya öznitelikleri değiştirmeden bırakan karakterleri etkilemez.
Uyarı
Varsayılan ve belirli metin özniteliklerini işlemek için alt düzey işlevlerin kullanılması önerilmez. Metin özniteliklerini ayarlamak için sanal terminal dizilerinin kullanılması önerilir. Sanal terminal dizilerini tercih etme hakkında daha fazla bilgi , klasik işlevler ve sanal terminal belgesinde bulunabilir.
Yazı Tipi Öznitelikleri
GetCurrentConsoleFont işlevi geçerli konsol yazı tipi hakkındaki bilgileri alır. CONSOLE_FONT_INFO yapısında depolanan bilgiler, yazı tipindeki her karakterin genişliğini ve yüksekliğini içerir.
GetConsoleFontSize işlevi, belirtilen konsol ekranı arabelleği tarafından kullanılan yazı tipinin boyutunu alır.
Uyarı
Yazı tipi bilgilerini bulmak ve değiştirmek için işlevlerin kullanılması önerilmez. Kullanıcının yazı tipini özelleştirmesine olanak sağlayan konak ortamlarıyla uyumluluğun yanı sıra platformlar arası uyumluluk sağlamak için komut satırı uygulamalarının yazı tipinden bağımsız bir şekilde çalıştırılması önerilir. Terminaller de dahil olmak üzere kullanıcı tercihleri ve konak ortamları hakkında daha fazla bilgi için lütfen ekosistem yol haritasına bakın.