【C语言】控制台窗口图形界面编程(六):光标设置
00. 目录
文章目录
- 00. 目录
- 01. CONSOLE_CURSOR_INFO结构
- 02. GetConsoleCursorInfo函数
- 03. SetConsoleCursorInfo函数
- 04. SetConsoleCursorPosition函数
01. CONSOLE_CURSOR_INFO结构
包含有关控制台光标的信息。
typedef struct _CONSOLE_CURSOR_INFO {DWORD dwSize;BOOL bVisible;
} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
dwSize
光标填充的字符单元格的百分比。该值介于1和100之间。光标外观会发生变化,从完全填充单元格到显示为单元格底部的水平线。
注意 虽然dwSize值通常介于1和100之间,但在某些情况下,可能会返回该范围之外的值。例如,如果在注册表中将CursorSize设置为0,则返回的dwSize值将为0。
bVisible
光标的可见性。如果光标可见,则此成员为TRUE。
02. GetConsoleCursorInfo函数
获取有关指定控制台屏幕缓冲区的光标大小和可见性的信息。
类型声明
BOOL WINAPI GetConsoleCursorInfo(_In_ HANDLE hConsoleOutput,_Out_ PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
);功能:获取光标相关信息
参数:hConsoleOutput 控制台屏幕缓冲区的句柄。句柄必须具有GENERIC_READ访问权限。lpConsoleCursorInfo 指向CONSOLE_CURSOR_INFO结构的指针,该结构接收有关控制台游标的信息。返回值:如果函数成功,则返回值为非零值。如果函数失败,则返回值为零。要获取扩展错误信息,请调用GetLastError。
参考程序
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>#include <Windows.h>
#include <conio.h>int main(void)
{//定义句柄变量HANDLE hOut = NULL;//光标信息变量CONSOLE_CURSOR_INFO cursorInfo;//获取标准输出句柄hOut = GetStdHandle(STD_OUTPUT_HANDLE);//获取当前光标信息GetConsoleCursorInfo(hOut, &cursorInfo);printf("光标默认大小: %d 光标是否可见: %d\n", cursorInfo.dwSize, cursorInfo.bVisible);//关闭句柄CloseHandle(hOut);system("pause");return 0;
}
执行结果
03. SetConsoleCursorInfo函数
设置指定控制台屏幕缓冲区的光标大小和可见性。
函数声明:
BOOL WINAPI SetConsoleCursorInfo(_In_ HANDLE hConsoleOutput,_In_ const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo
);
功能:设置光标的属性
参数:hConsoleOutput 控制台屏幕缓冲区的句柄。句柄必须具有GENERIC_READ访问权限。lpConsoleCursorInfo 指向CONSOLE_CURSOR_INFO结构的指针,该结构为控制台屏幕缓冲区的游标提供新规范。返回值:如果函数成功,则返回值为非零值。如果函数失败,则返回值为零。要获取扩展错误信息,请调用GetLastError。
参考程序
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>#include <Windows.h>
#include <conio.h>int main(void)
{//定义句柄变量HANDLE hOut = NULL;//光标信息变量CONSOLE_CURSOR_INFO cursorInfo;//获取标准输出句柄hOut = GetStdHandle(STD_OUTPUT_HANDLE);//获取当前光标信息GetConsoleCursorInfo(hOut, &cursorInfo);printf("光标默认大小: %d 光标是否可见: %d\n", cursorInfo.dwSize, cursorInfo.bVisible);getchar();//设置光标的尺寸为20cursorInfo.dwSize = 5;SetConsoleCursorInfo(hOut, &cursorInfo);getchar();//设置光标的尺寸为50cursorInfo.dwSize = 50;SetConsoleCursorInfo(hOut, &cursorInfo);getchar();//设置光标的尺寸为100cursorInfo.dwSize = 100;SetConsoleCursorInfo(hOut, &cursorInfo);getchar();//设置光标不可见cursorInfo.dwSize = 25;cursorInfo.bVisible = 0;SetConsoleCursorInfo(hOut, &cursorInfo);getchar();//关闭句柄CloseHandle(hOut);system("pause");return 0;
}
执行结果
04. SetConsoleCursorPosition函数
设置指定控制台屏幕缓冲区中的光标位置。
函数声明:
BOOL WINAPI SetConsoleCursorPosition(_In_ HANDLE hConsoleOutput,_In_ COORD dwCursorPosition
);功能:设置光标的位置参数:hConsoleOutput 控制台屏幕缓冲区的句柄。句柄必须具有GENERIC_READ访问权限。dwCursorPosition 用于指定新的光标位置(以字符为单位)。坐标是屏幕缓冲区字符单元格的列和行。坐标必须位于控制台屏幕缓冲区的边界内。返回值:如果函数成功,则返回值为非零值。如果函数失败,则返回值为零。要获取扩展错误信息,请调用GetLastError。
参考程序;
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>#include <Windows.h>
#include <conio.h>int main(void)
{//定义句柄变量HANDLE hOut = NULL;COORD pos;//获取标准输出句柄hOut = GetStdHandle(STD_OUTPUT_HANDLE);pos.X = 8;pos.Y = 8;//设置光标的位置SetConsoleCursorPosition(hOut, pos);printf("hello itcast1");pos.X = 18;pos.Y = 16;//设置光标的位置SetConsoleCursorPosition(hOut, pos);printf("hello itcast2");//关闭句柄CloseHandle(hOut);system("pause");return 0;
}
测试结果:
【C语言】控制台窗口图形界面编程(六):光标设置相关推荐
- 如何打开电脑c语言窗口,C语言控制台窗口图形界面编程(五). -电脑资料
控制文本的移动是控制台窗口界面编程的一个很重要的功能,有了这个功能我们可以实现界面的滚动, BOOL ScrollConsoleScreenBuffer( //文本移动函数 HANDLE h ...
- C语言控制台窗口图形界面编程
一:设置句柄与窗口信息 在Windows操作系统下用C语言编写控制台的窗口界面首先要获取当前标准输入和标准输出设备的句柄.通过调用函数GetStdHandle可以获取当前标准输入以及输出设备的句柄.函 ...
- C语言控制台窗口图形界面编程(五).
控制文本的移动是控制台窗口界面编程的一个很重要的功能,有了这个功能我们可以实现界面的滚动.下面我们介绍一个控制文本移动的函数,如下: BOOL ScrollConsoleScreenBuffer( ...
- C语言控制台窗口图形界面编程(七):键盘事件
输入事件中的键盘事件通常有字符事件和按键事件,这些事件的附带信息构成了键盘输入的信息,而想要读取这些信息,是要通过API函数ReadConsoleInput来获取的,函数原型如下: 1 BOOL Re ...
- 【C语言】控制台窗口图形界面编程(一)句柄和文本属性
00. 目录 文章目录 00. 目录 01. 句柄 02. GetStdHandle函数 03. CloseHandle函数 04. SetConsoleTextAttribute函数 05. 十进制 ...
- 【C语言】控制台窗口图形界面编程(三)窗口相关设置
00. 目录 文章目录 00. 目录 01. GetConsoleTitle函数 02. SetConsoleTitle函数 03. SetConsoleScreenBufferSize函数 04. ...
- 【C语言】控制台窗口图形界面编程(二)窗口信息和填充缓冲区
00. 目录 文章目录 00. 目录 01. COORD结构体 02. SMALL_RECT结构 03. CONSOLE_SCREEN_BUFFER_INFO结构体 04. GetConsoleScr ...
- 游标式屏幕菜单c语言,【C语言】控制台窗口图形界面编程(六):光标设置
00. 目录 01. CONSOLE_CURSOR_INFO结构 包含有关控制台光标的信息. typedef struct _CONSOLE_CURSOR_INFO { DWORD dwSize; B ...
- 【C语言】控制台窗口图形界面编程(五):文本移动
00. 目录 文章目录 00. 目录 01. CHAR_INFO结构 02. ScrollConsoleScreenBuffer函数 03. 程序示例 04. 官方参考程序 01. CHAR_INFO ...
最新文章
- OSC源创会往期图文回顾链接地址收藏
- mysql查看某个数据库下的所有视图
- 每天一点C++(之四)
- .Net Core 商城微服务项目系列(十二):使用k8s部署商城服务
- saltstack之keepalived的安装配置
- JS脚本defer的作用
- C++基础——tricks,让人惊艳的那些代码
- SSH服务器能够允许root用户远程登录
- C# WinForm开发
- 大一新生HTML期末作业 学生个人网页设计作业 HTML5响应式个人简历网站模板 web前端网页制作课作业
- 调用百度识图api实现识图vue+springboot
- c#中文字大全,转换为字符串格式
- vant框架cdn使用方式的简短案例
- 计算机桌面没有打字,电脑输入法不见了怎么办
- 一次真实的应急响应案例(Centos)——暴力破解、替换ps命令、留多个后门——事件复现(含靶场环境)
- php去除换行(回车换行)的方法
- 苹果xr截屏怎么截_苹果系统截屏录屏+标记剪辑功能详解( iPhone/iPad/Mac)
- 2019年的如今iPhone4S还能这么用
- QT编译在注释中遇到意外的文件结束
- 小学生计算机课的演讲稿,小学生课前三分钟演讲稿范文5篇
热门文章
- 为什么要用内部类:控制框架【转】
- 16个经典面试问题回答规律
- 深入掌握JMS(六):消息头
- Castle实践9-在Castle IOC容器中使用AspectSharp(全面剖析AspectSharp Facility)
- python列表索引超出范围 等于啥_python中的“列表索引超出范围”
- java 在线答疑系统_基于java 在线答疑系统-需求分析与概念原型
- 阳光学院计算机科学与技术需要英语四级,给各位想报阳光的朋友一点建议!来自学长的亲身经历!...
- 每日程序C语言32-取一个整数从右端开始的4-7位
- JS数组去重方法记录
- android动态获取输入值,Android实现动态自动匹配输入内容