控制台窗口的光標的位置反映的是當前文本輸入的插入位置,通過Windows API函數我們可以隨意更改光標的位置,下面介紹這個控制光標位置的API函
- BOOL SetConsoleCursorPosition( //設置光標位置
- HANDLE hConsoleOutput, //句柄
- COORD dwCursorPosition //坐標
- ); //若函數調用成功則返回非0值
不僅僅是光標的位置,光標的信息我們也可以通過一些API函數來設置,下面介紹光標信息結構體已經獲得和設置光標信息的API函數,如下:
- typedef struct _CONSOLE_CURSOR_INFO //光標信息結構體
- {
- DWORD dwSize; //光標尺寸大小,范圍是1~100
- BOOL bVisible; //表示光標是否可見,true表示可見
- } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
- BOOL GetConsoleCursorInfo( //獲得光標信息
- HANDLE hConsoleOutput, //句柄
- PCONSOLE_CURSOR_INFO lpConsoleCursorInfo //光標信息,注意這是個指針類型
- );
- BOOL SetConsoleCursorInfo( //設置光標信息
- HANDLE hConsoleOutput, //句柄
- const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo //光標信息
- );
下面的示例程序來演示以上函數的使用
- #include <stdio.h>
- #include <Windows.h>
- #include <conio.h>
- #include <stdlib.h>
- int main()
- {
- HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE); //獲得標准輸出設備句柄
- CONSOLE_CURSOR_INFO cci; //定義光標信息結構體
- GetConsoleCursorInfo(handle_out, &cci); //獲得當前光標信息
- _getch();
- cci.dwSize = 1; //設置光標尺寸為1
- SetConsoleCursorInfo(handle_out, &cci);
- _getch();
- cci.dwSize = 50; //設置光標尺寸為50
- SetConsoleCursorInfo(handle_out, &cci);
- _getch();
- cci.dwSize = 100; //設置光標尺寸為100
- SetConsoleCursorInfo(handle_out, &cci);
- _getch();
- cci.bVisible = false; //設置光標為不可見
- SetConsoleCursorInfo(handle_out, &cci);
- _getch();
- return 0;
- }




