ScrollConsoleScreenBufferBOOL ScrollConsoleScreenBuffer(
HANDLE hConsoleOutput, // 主控台輸出控制代碼
const SMALL_RECT *lpScrollRect, // 移動來源矩形區域
const SMALL_RECT *lpClipRect, // 裁剪矩形(NULL=整個緩衝區)
COORD dwDestinationOrigin, // 目標左上角座標
const CHAR_INFO *lpFill // 空出區域填充字元屬性
);
實驗基礎:主控台輸出 4 行文字(0/1/2/3 行),來源區域 scroll = {Left=1, Top=1, Right=10, Bottom=2}(即第 1-2 行第 1-10 字元),目標位置 {0,5}。
lpClipRect = NULL(預設整個緩衝區)lpClipRect = &scroll(裁剪區=來源區)| 區域 | 受移動影響? | 原位置變化 | 目標位置變化 |
|---|---|---|---|
| 裁剪區外 | 否 | 凍結不變 | 不被覆蓋 |
| 裁剪區內 | 是 | 被填充字元覆蓋 | 被移動內容覆蓋 |
應用場景: 實現主控台文字編輯器捲動、遊戲畫面捲動、日誌即時顯示區域更新等。精確控制 lpClipRect 可實現局部捲動而不干擾 UI 其他部分(如標題列、狀態列)。