Bagikan melalui


Fungsi Output Konsol Tingkat Rendah

Penting

Dokumen ini menjelaskan fungsionalitas platform konsol yang tidak lagi menjadi bagian dari peta jalan ekosistem kami. Kami tidak menyarankan penggunaan konten ini dalam produk baru, tetapi kami akan terus mendukung penggunaan yang ada untuk masa depan yang tidak terbatas. Solusi modern pilihan kami berfokus pada urutan terminal virtual untuk kompatibilitas maksimum dalam skenario lintas platform. Anda dapat menemukan informasi selengkapnya tentang keputusan desain ini di konsol klasik vs. dokumen terminal virtual kami.

Fungsi output konsol tingkat rendah menyediakan akses langsung ke sel karakter buffer layar. Satu set fungsi membaca dari atau menulis ke sel berturut-turut yang dimulai di lokasi mana pun di buffer layar konsol. Sekumpulan fungsi lain membaca dari atau menulis ke blok sel persegi panjang.

Fungsi berikut membaca dari atau menulis ke jumlah sel karakter berturut-turut tertentu dalam buffer layar, dimulai dengan sel tertentu.

Function Deskripsi
ReadConsoleOutputCharacter Menyalin string karakter Unicode atau ANSI dari buffer layar.
WriteConsoleOutputCharacter Menulis string karakter Unicode atau ANSI ke buffer layar.
ReadConsoleOutputAttribute Menyalin string atribut warna teks dan latar belakang dari buffer layar.
WriteConsoleOutputAttribute Menulis string atribut warna teks dan latar belakang ke buffer layar.
FillConsoleOutputCharacter Menulis satu karakter Unicode atau ANSI ke sejumlah sel berturut-turut tertentu dalam buffer layar.
FillConsoleOutputAttribute Menulis kombinasi atribut warna teks dan latar belakang ke jumlah sel berturut-turut tertentu dalam buffer layar.

Untuk semua fungsi ini, ketika sel terakhir baris ditemui, membaca, atau menulis membungkus ke sel pertama baris berikutnya. Ketika akhir baris terakhir buffer layar konsol ditemui, fungsi tulis membuang semua karakter atau atribut yang tidak ditulis, dan fungsi baca melaporkan jumlah karakter atau atribut yang benar-benar ditulis.

Fungsi berikut membaca dari atau menulis ke blok persegi panjang sel karakter di lokasi tertentu dalam buffer layar.

Function Deskripsi
ReadConsoleOutput Menyalin data karakter dan warna dari blok tertentu dari sel buffer layar ke dalam blok tertentu dalam buffer tujuan.
WriteConsoleOutput Menulis karakter dan data warna ke blok tertentu dari sel buffer layar dari blok tertentu dalam buffer sumber.

Fungsi-fungsi ini memperlakukan buffer layar dan buffer sumber atau tujuan sebagai array dua dimensi struktur CHAR_INFO (berisi data atribut karakter dan warna untuk setiap sel). Fungsi menentukan lebar dan tinggi, dalam sel karakter, buffer sumber atau tujuan, dan penunjuk ke buffer diperlakukan sebagai penunjuk ke sel asal (0,0) dari array dua dimensi. Fungsi menggunakan struktur SMALL_RECT untuk menentukan persegi panjang mana yang akan diakses di buffer layar konsol, dan koordinat sel kiri atas di buffer sumber atau tujuan menentukan lokasi persegi panjang yang sesuai dalam buffer tersebut.

Fungsi-fungsi ini secara otomatis mengklip persegi panjang buffer layar yang ditentukan agar pas dalam batas buffer layar konsol. Misalnya, jika persegi panjang menentukan koordinat kanan bawah yaitu (kolom 100, baris 50) dan buffer layar konsol hanya lebar 80 kolom, koordinat diklip sehingga (kolom 79, baris 50). Demikian pula, persegi panjang yang disesuaikan ini lagi dipotong agar pas dalam batas buffer sumber atau tujuan. Koordinat buffer layar persegi panjang aktual yang dibaca dari atau ditulis ditentukan. Untuk contoh yang menggunakan fungsi-fungsi ini, lihat Membaca dan Menulis Blok Karakter dan Atribut.

Ilustrasi menunjukkan operasi ReadConsoleOutput di mana kliping terjadi ketika blok dibaca dari buffer layar konsol, dan sekali lagi ketika blok disalin ke buffer tujuan. Fungsi melaporkan persegi panjang buffer layar aktual yang disalin.

screen buffer window with destination buffer