Bagikan melalui


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)

Baca juga

CHAR_INFO

Fungsi Konsol

COORD

Menggulir Penyangga Layar

SetConsoleCP

SetConsoleOutputCP

SetConsoleWindowInfo

SMALL_RECT