Fungsi ScrollConsoleScreenBuffer
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.
Memindahkan blok data dalam buffer layar. Efek pemindahan dapat dibatasi dengan menentukan persegi panjang kliping, sehingga konten buffer layar konsol di luar persegi panjang kliping tidak berubah.
Sintaks
BOOL WINAPI ScrollConsoleScreenBuffer(
_In_ HANDLE hConsoleOutput,
_In_ const SMALL_RECT *lpScrollRectangle,
_In_opt_ const SMALL_RECT *lpClipRectangle,
_In_ COORD dwDestinationOrigin,
_In_ const CHAR_INFO *lpFill
);
Parameter
hConsoleOutput [in]
Handel ke buffer layar konsol. Handel harus memiliki akses GENERIC_READ yang tepat. Untuk informasi selengkapnya, lihat Keamanan dan Hak Akses Buffer Konsol.
lpScrollRectangle [in]
Penunjuk ke struktur SMALL_RECT yang anggotanya menentukan koordinat kiri atas dan kanan bawah persegi panjang buffer layar konsol yang akan dipindahkan.
lpClipRectangle [in, opsional]
Penunjuk ke struktur SMALL_RECT yang anggotanya menentukan koordinat kiri atas dan kanan bawah persegi panjang buffer layar konsol yang terpengaruh oleh pengguliran. Penunjuk ini bisa NULL.
dwDestinationOrigin [in]
Struktur COORD yang menentukan sudut kiri atas lokasi baru konten lpScrollRectangle , dalam karakter.
lpFill [in]
Penunjuk ke struktur CHAR_INFO yang menentukan atribut karakter dan warna yang akan digunakan dalam mengisi sel dalam persimpangan lpScrollRectangle dan lpClipRectangle yang dibiarkan kosong sebagai akibat dari pemindahan.
Nilai hasil
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
ScrollConsoleScreenBuffer menyalin konten wilayah persegi panjang dari buffer layar, yang ditentukan oleh parameter lpScrollRectangle , ke area lain dari buffer layar konsol. Persegi panjang target memiliki dimensi yang sama dengan persegi panjang lpScrollRectangle dengan sudut kiri atasnya pada koordinat yang ditentukan oleh parameter dwDestinationOrigin . Bagian-bagian lpScrollRectangle yang tidak tumpang tindih dengan persegi panjang target diisi dengan atribut karakter dan warna yang ditentukan oleh parameter lpFill .
Persegi panjang kliping berlaku untuk perubahan yang dibuat di persegi panjang lpScrollRectangle dan persegi panjang target. Misalnya, jika persegi panjang kliping tidak menyertakan wilayah yang akan diisi oleh isi lpFill, konten asli wilayah tersebut tidak berubah.
Jika wilayah gulir atau target meluas di luar dimensi buffer layar konsol, wilayah tersebut akan diklip. Misalnya, jika lpScrollRectangle adalah wilayah yang terkandung oleh (0,0) dan (19,19) dan dwDestinationOrigin adalah (10,15), persegi panjang target adalah wilayah yang terkandung oleh (10,15) dan (29,34). Namun, jika buffer layar konsol lebarnya 50 karakter dan tinggi 30 karakter, persegi panjang target diklip menjadi (10.15) dan (29.29). Perubahan pada buffer layar konsol juga diklip sesuai dengan lpClipRectangle, jika parameter menentukan struktur SMALL_RECT. Jika persegi panjang kliping ditentukan sebagai (0,0) dan (49,19), hanya perubahan yang terjadi di wilayah buffer layar konsol yang dibuat.
Fungsi ini menggunakan karakter Unicode atau karakter 8-bit dari halaman kode konsol saat ini. Halaman kode konsol default awalnya ke halaman kode OEM sistem. Untuk mengubah halaman kode konsol, gunakan fungsi SetConsoleCP atau SetConsoleOutputCP. Konsumen warisan juga dapat menggunakan perintah chcp atau mode con cp select= , tetapi tidak disarankan untuk pengembangan baru.
Tip
API ini tidak disarankan dan tidak memiliki terminal virtual yang setara. Penggunaan dapat diperkirakan dengan margin gulir untuk memperbaiki area layar, penempatan kursor untuk mengatur posisi aktif di luar wilayah, dan baris baru untuk memaksa teks berpindah. Ruang yang tersisa dapat diisi dengan memindahkan kursor, mengatur atribut grafis, dan menulis teks normal.
Contoh
Misalnya, lihat Menggulir Konten Buffer Layar.
Persyaratan
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Header | ConsoleApi2.h (melalui WinCon.h, termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |
Nama Unicode dan ANSI | ScrollConsoleScreenBufferW (Unicode) dan ScrollConsoleScreenBufferA (ANSI) |