知识点1——光标位置控制(涉及句柄、COORD结构体、GetStdHandle函数、SetConsoleCursorPosition函数等)

K1光标控制(涉及句柄、COORD结构体、GetStdHandle函数、SetConsoleCursorPosition函数等)

(1)句柄

句柄是句柄(Handle)是一个是用来标识对象或者项目的标识符,可以用来描述窗体、文件等。

(2)COORE结构体

COORD是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标
其定义为:

  typedef struct _COORD {
     SHORT X; // horizontal coordinate
     SHORT Y; // vertical coordinate
    } COORD`
实际应用中:
COORD pos;//定义结构体类型变量pos
 pos.X=a;
 pos.Y=b;

表示光标移动到a列b行(当然光有这三行代码是不行的,还要有下面的两个函数)

(3)GetStdHandle()函数

GetStdHandle()是一个Windows API函数。它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄(用来标识不同设备的数值)

含义
SDT_INPUT_HANDLE 标准输入
STD_OUTPUT_HANDLE 标准输出
STD_ERROR_HANDLE 标准错误
(4)SetConsoleCursorPosition()函数

SetConsoleCursorPosition是API中定位光标位置的函数。他有两个参数一个句柄(第三点中提到的三个句柄)一个就是之前定义的结构体类型COORD的变量pos,这个函数实际控制光标的位置。

COORD pos;
    pos.X=0;
    pos.Y=5;
   SetConsoleCursorPosition(GetStdHandle(STD_ERROR_HANDLE),pos);
   printf("HelloWorld!\n");

如果改变0和5的值就可以改变“HelloWorld!”出现的位置了!

(5)SetConsoleTextAttribute()函数

SetConsoleTextAttribute是Windows系统中一个可以设置控制台窗口字体颜色和背景色的计算机函数,该函数被广泛应用于软件开发中。
他有两个参数第一个参数是一个句柄(和上一个函数相同),另外一个参数是一个或两个十六进制或十进制的参数用来具体控制颜色。
(具体哪个数字代表哪种颜色可以点击链接: 百度图片.

COORD pos;
    pos.X=0;
    pos.Y=5;
   SetConsoleCursorPosition(GetStdHandle(STD_ERROR_HANDLE),pos);
    printf("HelloWorld!\n");
    SetConsoleTextAttribute(GetStdHandle(STD_ERROR_HANDLE),4|9);
    printf("HelloWorld!\n");
    printf("HelloWorld!\n");
    abs();
    return 0;

对应效果:
知识点1——光标位置控制(涉及句柄、COORD结构体、GetStdHandle函数、SetConsoleCursorPosition函数等)_第1张图片
(以上函数都在头文件中)

你可能感兴趣的:(知识点1——光标位置控制(涉及句柄、COORD结构体、GetStdHandle函数、SetConsoleCursorPosition函数等))