Windows控制台是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具,它是微软推出的一种全新的控制模式,用于在安全模式和其他启动选项不起作用时修复系统。
Windows控制台的光标具有两个属性:dwSize 高度,bVisible 是否显示。
步骤/方法
具体步骤:
1.得标准输出设备句柄GetStdHandle(),因为光标是在标准输出设备上显示
2.获取Windows控制台光标信息GetConsoleCursorInfo(),可以跳过
3.设置Windows控制台光标信息SetConsoleCursorInfo()
4.设置Windows控制台光标位置
(1)获取设备句柄的函数:
HANDLE WINAPI GetStdHandle(
__in DWORD nStdHandle
);nStdHandle :
1. STD_INPUT_HANDLE 标准输入设备,起初,它是控制台输入缓存区,CONIN$
2. STD_OUTPUT_HANDLE 标准输出设备,起初,它是活动的控制台屏幕缓存区,CONOUT$
3. STD_ERROR_HANDLE 标准报错设备,起初,它是活动的控制台屏幕缓存区,CONOUT$
(2)Windows控制台光标信息结构体:
typedef struct _CONSOLE_CURSOR_INFO {
DWORD dwSize; //光标的高度,控制台一行字符的高度为100,光标的高度为1到100
BOOL bVisible; //是否显示光标,TRUE为显示,FALSE为不显示
} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO
(3)获取Windows控制台光标信息:
- BOOL WINAPI GetConsoleCursorInfo(
- __in HANDLE hConsoleOutput,
- __out PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
- );
hConsoleOutput:Windows控制台屏幕缓存区句柄,必须具有GENERIC_READ权限
lpConsoleCursorInfo:一个指向CONSOLE_CURSOR_INFO的指针,用来接收控制台光标信息
(4)设置Windows控制台光标信息:
- BOOL WINAPI SetConsoleCursorInfo(
- __in HANDLE hConsoleOutput,
- __in const CONSOLE_CURSOR_INFO* lpConsoleCursorInfo
- );
hConsoleOutput:Windows控制台屏幕缓存区句柄,必须具有GENERIC_READ权限
lpConsoleCursorInfo:一个指向CONSOLE_CURSOR_INFO的指针,用来设置控制台光标信息
(5)设置Windows控制台光标位置:
void gotoxy(int Wide,int High) //Wide表示列,0为***列,High表示行,0为***行
- {
- COORD loc;
- loc.X=Wide;
- loc.Y=High;
- SetConsoleCursorPosition(hStdout, loc);
- }
Windows控制台光标的控制主要是利用代码来实现的,读者对其代码熟练的掌握则可熟练的控制光标。
【编辑推荐】