有一个结构为
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 coordinate
SHORT Y; // vertical coordinate
} COORD;
GetStdHandle是一个Windows API函数。它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄(用来标识不同设备的数值)。可以嵌套使用。
声明:
HANDLE GetStdHandle( DWORD nStdHandle );
参数有
SetConsoleCursorPosition是一个window api;作用是设置控制台(cmd)光标位置,参数通过上面也看到了,一个是句柄,一个是坐标