控制文本的移动是控制台窗口界面编程的一个很重要的功能,有了这个功能我们可以实现界面的滚动。下面我们介绍一个控制文本移动的函数,如下:
BOOL ScrollConsoleScreenBuffer( //文本移动函数 HANDLE hConsoleOutput, //句柄 const SMALL_RECT *lpScrollRectangle, //移动区域 const SMALL_RECT *lpClipRectangle, //裁剪区域,如果为NULL,那么将代表整个屏幕缓冲区 COORD dwDestinationOrigin, //移动到的位置,这个点将成为移动区域的左上顶点 const CHAR_INFO *lpFill //空出区域的填充字符 );
下面来看一个移动文本的样例程序,如下
#include <stdio.h> #include <conio.h> #include <Windows.h> #include <stdlib.h> int main() { HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE); //获得标准输出设备句柄 CONSOLE_SCREEN_BUFFER_INFO csbi; //定义窗口缓冲区信息结构体 SMALL_RECT scroll; //定义移动区域 COORD pos = {0, 5}; //移动位置 CHAR_INFO chFill; //定义填充字符 GetConsoleScreenBufferInfo(handle_out, &csbi); //获得窗口缓冲区信息 //定义填充字符的各个参数及属性 chFill.Char.AsciiChar = ' '; chFill.Attributes = csbi.wAttributes; //输出文本 printf("00000000000000000000000000000\n"); printf("11111111111111111111111111111\n"); printf("22222222222222222222222222222\n"); printf("33333333333333333333333333333\n"); //确定区域 scroll.Left = 1; scroll.Top = 1; scroll.Right = 10; scroll.Bottom = 2; ScrollConsoleScreenBuffer(handle_out, &scroll, NULL, pos, &chFill); //移动文本 return 0; }
在上面的样例程序中,裁剪区域是整个控制台窗口的屏幕缓冲区,现在如果我们把裁剪区域设定为与移动区域一样,也就是说ScrollConsoleScreenBuffer函数的第三个参数也改成&scroll,那么结果会怎么样呢?
本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/C/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索移动
, 文本
, 缓冲区
, scroll
, 窗口
, 数据结构改成c语言
, 区域
, 顶点缓冲
, 裁剪字符串
控制台界面
c语言控制台界面编程、c语言控制台编程、c语言图形界面编程、c语言图形编程、c语言图形化编程,以便于您获取更多的相关知识。