控制台窗口的光标的位置反映的是当前文本输入的插入位置,通过Windows API函数我们可以随意更改光标的位置,下面介绍这个控制光标位置的API函数,如下:

1 BOOL SetConsoleCursorPosition(  //设置光标位置
2     HANDLE hConsoleOutput,      //句柄
3     COORD dwCursorPosition      //坐标
4 );      //若函数调用成功则返回非0值


       不仅仅是光标的位置,光标的信息我们也可以通过一些API函数来设置,下面介绍光标信息结构体已经获得和设置光标信息的API函数,如下:

 1 typedef struct _CONSOLE_CURSOR_INFO     //光标信息结构体
 2 {
 3     DWORD dwSize;       //光标尺寸大小,范围是1~100
 4     BOOL  bVisible;     //表示光标是否可见,true表示可见
 5 } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
 6 
 7 BOOL GetConsoleCursorInfo(      //获得光标信息
 8     HANDLE hConsoleOutput,      //句柄
 9     PCONSOLE_CURSOR_INFO lpConsoleCursorInfo    //光标信息,注意这是个指针类型
10 );
11 
12 BOOL SetConsoleCursorInfo(      //设置光标信息
13     HANDLE hConsoleOutput,      //句柄
14     const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo  //光标信息
15 );

 

 

       下面的示例程序来演示以上函数的使用

 1 #include <stdio.h>
 2 #include <Windows.h>
 3 #include <conio.h>
 4 #include <stdlib.h>
 5 
 6 int main()
 7 {
 8     HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);    //获得标准输出设备句柄
 9     CONSOLE_CURSOR_INFO cci;        //定义光标信息结构体
10     GetConsoleCursorInfo(handle_out, &cci);     //获得当前光标信息
11     _getch();
12     cci.dwSize = 1;     //设置光标尺寸为1
13     SetConsoleCursorInfo(handle_out, &cci);
14     _getch();
15     cci.dwSize = 50;    //设置光标尺寸为50
16     SetConsoleCursorInfo(handle_out, &cci);
17     _getch();
18     cci.dwSize = 100;   //设置光标尺寸为100
19     SetConsoleCursorInfo(handle_out, &cci);
20     _getch();
21     cci.bVisible = false;       //设置光标为不可见
22     SetConsoleCursorInfo(handle_out, &cci);
23     _getch();
24     return 0;
25 }