SQL Server2008的安装,SQLServer2008的安装......
2023-02-22 274 安装
相信很多小伙伴在学习开发控制台游戏的时候,总是会遇到这样的问题,怎么隐藏控制台的光标呢?
今天小编就教小伙伴怎么在Windows上用C语言隐藏和显示控制台光标。
希望可以帮到大家。
我们要用到windows的API接口。里面有一个SetConsoleCursorInfo可以解决我们的问题。
先打开MSDN查找这个函数,重要的信息小编已经用红色画笔标记了。
我们先来看看函数原型
BOOL SetConsoleCursorInfo( HANDLE hConsoleOutput, const CONSOLE_CURSOR_INFO* lpConsoleCursorInfo);
返回值为BOOL类型,设置成功时返回非0值True,失败返回0 False
第一个参数是用于传递控制台句柄,第二个参数则是一个CONSOLE_CURSOR_INFO类型的结构体指针。
开始写出一个标准main函数。
#include windows.h>
#include stdio.h>
int main(int argc,char * argv[])
{
return 0;
}
我们用GetStdHandle接口函数来获得控制台句柄。
该接口原型如下:
HANDLE GetStdHandle( DWORD nStdHandle);
提供的参数宏如下:
标准输入:STD_INPUT_HANDLE (DWORD)-10
标准输出:STD_OUTPUT_HANDLE (DWORD)-11
标准错误:STD_ERROR_HANDL (DWORD)-12
返回指定标准设备的句柄,我们用一个fd变量接收该返回值。
HANDLE fd = GetStdHandle(STD_OUTPUT_HANDLE);
然后我们要定义一个CONSOLE_CURSOR_INFO类型的结构体,为了设置光标隐藏和显示效果。
CONSOLE_CURSOR_INFO结构体的原型如下:
typedef struct _CONSOLE_CURSOR_INFO { DWORD dwSize; BOOL bVisible;
} CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;
其下的2个成员,bVisible是设置光标显示和隐藏,dwSize则是设置光标的粗度(1-100)
当我们设置bVisible为真(非0)时,显示光标,设置bVisible为假(0)时,隐藏光标。
设置bVisible为0,隐藏光标。
CONSOLE_CURSOR_INFO cinfo;
cinfo.bVisible = 0;
//设置光标隐藏
cinfo.dwSize = 1;
还要,千万要注意一点就是dwSize成员一定要有数值(非0的数值,即1~100),否则不生效。
调用SetConsoleCursorInfo接口使其生效。
if(SetConsoleCursorInfo(fd,&cinfo))
printf("执行成功n");
else
printf("执行失败n");
编译运行可以看到光标隐藏了。
所有代码如下:
#include windows.h>
#include stdio.h>
int main(int argc,char * argv[])
{
HANDLE fd = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cinfo;
cinfo.bVisible = 0;
cinfo.dwSize = 1;
if(SetConsoleCursorInfo(fd,&cinfo))
printf("执行成功n");
else
printf("执行失败n");
return 0;
}
我们可以修改下,用scanf获得用户键盘输入,然后根据用户输入的字符串来决定显示或隐藏光标。
#include windows.h>
#include stdio.h>
#include string.h>
int main(int argc,char * argv[])
{
HANDLE fd = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cinfo;
char str[4];
while(1)
{
cinfo.dwSize = 1;
printf("请输入on/off开启/关闭光标显示:n");
scanf("%s",str);
if(!strcmp(str,"off"))
{
cinfo.bVisible = 0;
SetConsoleCursorInfo(fd,&cinfo);
}
else if(!strcmp(str,"on"))
{
cinfo.bVisible = 1;
SetConsoleCursorInfo(fd,&cinfo);
}
else
printf("指令错误,请重新输入,输入on或者off打开或者关闭光标显示n");
}
return 0;
}
怎么关注?
在经验的右上角小编头像旁边点击关注,如图。
怎么点赞?
请在经验左侧点赞,如图。
怎么投票?
在经验的下方点击投票,如图。
如果觉得小编写的还不错,可以动动鼠标把它分享给您的朋友。
如何分享,鼠标移动到右下角第一个按钮上,在弹出的选项中进行分享,如图。
不尽感激。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章