
控制台光标隐藏
发布日期:2021-05-07 01:32:38
浏览次数:43
分类:精选文章
本文共 1127 字,大约阅读时间需要 3 分钟。
有一个结构为
typedef struct _CONSOLE_CURSOR_INFO { DWORD dwSize;// 光标百分比厚度(1~100) BOOL bVisible;// 是否可见 } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
是控制台的一个自带的结构体,用户直接通过调用它定义的两个对象就行了
例如隐藏光标:void HideCursor(int n) /*隐藏光标*/{ CONSOLE_CURSOR_INFO cursor_info={1,n}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);} //隐藏光标只需要把n设置为0也就是把上面的结构体的bVisible设置为false就可以了
对于将光标移动到指定位置需要:
void GotoXy(int x,int y) //将光标移到(x,y){ HANDLE hout; /*HANDLE:句柄,是Windows用来表示对象的(不是C++的对象),HWND是其中一种,HWND是HANDLE,但HANDLE不只是HWND,HANDLE是一个通用句柄表示,HWND是一个专用表示窗口的句柄。更具体的可查找MSDN。包含在winnt.h头文件中。*/ COORD coord; //COORD的解释在下面 coord.X=x; coord.Y=y; hout=GetStdHandle(STD_OUTPUT_HANDLE); //这个函数的解释也在下面 SetConsoleCursorPosition(hout,coord); //也在下面}
//COORD是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标。其定义为:typedef struct _COORD {SHORT X; // horizontal coordinateSHORT Y; // vertical coordinate} COORD;
GetStdHandle是一个Windows API函数。它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄(用来标识不同设备的数值)。可以嵌套使用。声明:HANDLE GetStdHandle( DWORD nStdHandle );
参数有
SetConsoleCursorPosition是一个window api;作用是设置控制台(cmd)光标位置,参数通过上面也看到了,一个是句柄,一个是坐标