快速入门基础控制台API

目录

一、什么是win32API

二、API基础函数介绍

2.1控制台基础命令

2.1.1标题修改

2.1.2长宽修改

2.1.3坐标

2.2GetStdHandle

2.3GetConsoleCursorInfo

2.4SetConsoleCursorInfo

2.5SetConsoleCursorPosition

2.6GetAsyncKeyState

三、API函数综合应用

3.1设置光标

3.2判断一个键是否被按下

3.2基于控制台的游戏-贪吃蛇


详见Microsoft官方解释:控制台函数 - Windows Console | Microsoft Learn

一、什么是win32API

        Win32 API是一组用于开发Microsoft Windows操作系统上应用程序的应用程序接口(API)。这些API是基于32位版本的Windows操作系统(如Windows 95、Windows 98、Windows NT等)的,因此得名Win32。它提供了对操作系统的底层功能的访问,包括窗口管理、图形设备接口、输入输出、文件系统等。通过Win32 API,开发人员可以编写能够与操作系统交互并利用其功能的应用程序,从简单的窗口应用程序到复杂的系统工具和游戏等各种类型的应用都可以使用Win32 API来开发。

二、API基础函数介绍

2.1控制台基础命令

2.1.1标题修改

title 自定义标题

2.1.2长宽修改

mode con cols=100 lines=30

2.1.3坐标

COORD 是Windows API中定义的⼀个结构体,表示⼀个字符在控制台屏幕幕缓冲区上的坐标,坐标系的原点位于缓冲区的顶部左侧单元格。

typedef struct _COORD {SHORT X;SHORT Y;
} COORD, *PCOORD;

2.2GetStdHandle

HANDLE GetStdHandle(DWORD nStdHandle);
  1. 作用:GetStdHandle是⼀个Windows API函数。它⽤于从⼀个特定的标准设备(标准输⼊、标准输出或标准错误)中取得⼀个句柄(⽤来标识不同设备的数值),使⽤这个句柄可以操作设备。
  2. 参数:

2.3GetConsoleCursorInfo

BOOL WINAPI GetConsoleCursorInfo(HANDLE hConsoleOutput,PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
);
  1. 作用:检索有关指定控制台屏幕缓冲区的光标大小和可⻅性的信息
  2. 参数:
    a.操作的句柄
    b.PCONSOLE_CURSOR_INFO 是指向 CONSOLE_CURSOR_INFO 结构的指针,该结构体接收有关主机光标的信息。
    typedef struct _CONSOLE_CURSOR_INFO {DWORD dwSize;BOOL  bVisible;
    } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;• dwSize:由光标填充的字符单元格的百分⽐。 此值介于1到100之间。 光标外观会变化,范围从完全填充单元格到单元底部的⽔平线条。
    • bVisible:游标的可⻅性。 如果光标可⻅,则此成员为 TRUE。

2.4SetConsoleCursorInfo

BOOL WINAPI SetConsoleCursorInfo(HANDLE hConsoleOutput,const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo
);
  1. 作用:设置指定控制台屏幕缓冲区的光标的大小和可见性。
  2. 参数:同2.3解释

2.5SetConsoleCursorPosition

BOOL WINAPI SetConsoleCursorPosition(HANDLE hConsoleOutput,COORD pos
);
  1. 作用:
  2. 参数:
    a. 句柄
    b. 指向坐标的结构体

2.6GetAsyncKeyState

SHORT GetAsyncKeyState(int vKey
);
  1. 作用:将键盘上每个键的虚拟键值传递给函数,函数通过返回值来分辨按键的状态。
  2. 返回值:如果返回的16位的short数据中,最⾼位是1,说明按键的状态是按下,如果最⾼是0,说明按键的状态是抬起;如果最低位被置为1则说明该按键被按过,否则为0。
  3. 参数详见:虚拟键码 (Winuser.h) - Win32 apps | Microsoft Learn

三、API函数综合应用

3.1设置光标

void SetPos(short x, short y)
{COORD pos = { x, y };HANDLE hOutput = NULL;// 获取标准输出的句柄hOutput = GetStdHandle(STD_OUTPUT_HANDLE);// 设置标准输出设备上光标的位置为posSetConsoleCursorPosition(hOutput, pos);
}

3.2判断一个键是否被按下

按下返回1,没有返回0//函数写法
void Key_Press_Check()
{if((GetAsyncKeyState(VK) & 0x1)==1){return 1;}else{return 0;}
}
//宏定义写法
#define KEY_PRESS_CHECK(VK) ( (GetAsyncKeyState(VK) & 0x1) ? 1 : 0 )

3.2基于控制台的游戏-贪吃蛇

详见博主另一篇博客:http://t.csdnimg.cn/9ULjS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA-关于idea在import类时,代码报红的解决方法,找不到包

关于idea在import类时,代码报红的解决方法_idea import报红-CSDN博客

软件企业质量保证的基石――QA,QC的良性协作

软件企业质量保证的基石――QA、QC的良性协作 国内的软件产业发展了20多年的时间,已经由个人英雄时代步入到中、小团队协作时代。相信不久的将来,国内一定会出现航母级的软件企业,那时候我们会迎来集团军作战的时代。不同的时代表明软件规模…

Pandas 2.2 中文官方教程和指南(二十五·二)

新列 使用 DataFrame.map(以前称为 applymap)高效动态创建新列 In [53]: df pd.DataFrame({"AAA": [1, 2, 1, 3], "BBB": [1, 1, 2, 2], "CCC": [2, 1, 3, 1]})In [54]: df Out[54]: AAA BBB CCC 0 1 1 2 1…

用html写一个旋转菜单

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>旋转菜单</title><link relstylesheet href"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css"&…

Linux操作

一&#xff1a;各类操作快捷键 Ctrl c强制停止程序运行用于删除命令&#xff0c;执行出错时使用Ctrl d退出或者登出用于退出Linux账户 | 退出Linux自带的Python模式(命令框输入&#xff1a;python进入)history查看历史命令用于查看历史命令Ctrl r历史命令搜索进入后面在 内…

树莓派学习笔记--串口通信(配置硬件串口进行通信)

树莓派串口知识点 树莓派4b的外设一共包含两个串口&#xff1a;硬件串口&#xff08;/dev/ttyAMA0&#xff09;,mini串口&#xff08;/dev/ttyS0&#xff09; 硬件串口由硬件实现&#xff0c;有单独的波特率时钟源&#xff0c;性能高&#xff0c;可靠&#xff1b;而mini串口性能…

分享6款嵌入式常见的GUI,不要错过

大家好&#xff0c;我是知微&#xff01; 先来聊聊什么是GUI。图形用户界面&#xff08;Graphical User Interface&#xff0c;简称 GUI&#xff09;采用直观的图形方式展示&#xff0c;让用户与计算机或设备交流变得简单直观。不仅工作效率得到极大提升&#xff0c;用户体验也…

普通人也可以在抖音上开店卖货了,还有多少人不知道!

大家好&#xff0c;我是电商糖果 在抖音上开网店卖货最近几年特别火&#xff0c;我想只要是稍微了解电商创业的朋友都知道。 就当你没有创业做电商的想法&#xff0c;你只要有网购的习惯&#xff0c;就会发现抖音上购买商品非常的方便。 而且身边的同事&#xff0c;朋友也都…

全新G级越野车家族领衔 梅赛德斯-奔驰携强劲实力阵容和前瞻数字科技亮相2024北京车展

全新纯电G级越野车、G 500和AMG G 63亮相&#xff0c;油电双雄带来G级越野车的多元选择CLA级概念车携MMA平台及MB.OS构建奔驰电动化、数字化的未来&#xff0c;定义新生代电动风潮全新AMG GT 63 S E PERFORMANCE车展亮相&#xff0c;以F1技术打造“史上最快AMG量产车”“迈巴赫…

Vue2 —— 学习(十)

目录 一、vue-resource 库 二、插槽 &#xff08;一&#xff09;默认插槽 &#xff08;二&#xff09;具名插槽 &#xff08;三&#xff09;作用域插槽 三、vuex &#xff08;一&#xff09;介绍 &#xff08;二&#xff09;多组件共享数据 1.通过全局事件总线实现 2…

【virtuoso】 PDK

什么是PDK&#xff1f; PDK( Process Design Kit )&#xff0c;工程设计数据包&#xff0c;是芯片厂家foundary提供给IC设计公司的有关制造工艺的模型和EDA工具支持。是连接IC制造公司&#xff0c;IC设计公司的桥梁。 PDK包含内容&#xff1a; 器件模型 SPICE模型模型 与 测量误…

Nodejs--异步编程

异步编程 函数式编程 高阶函数 在通常的语言中&#xff0c;函数的参数只接受基本的数据类型或者是对象引用&#xff0c;返回值只能是基本数据类型和对象引用。 function foo(x) {return x }高阶函数是把函数作为参数&#xff0c;将函数作为返回值的函数 function foo(x) {…

最好的电脑监控软件,监控员工的软件哪个好用

经过对百度AI的询问&#xff0c;最好的电脑监控软件是安企神&#xff0c;因为它排名第一位。 经过对AI的详细询问&#xff0c;它给出了选择安企神作为电脑监控软件的十个理&#xff1a; 获取试用版找客服 1.全面的监控功能 安企神软件提供了屏幕监控、键盘记录、文件操作记录…

【Harmony3.1/4.0】笔记二-列表

概述 列表是一种复杂的容器&#xff0c;当列表项达到一定数量&#xff0c;内容超过屏幕大小时&#xff0c;可以自动提供滚动功能。它适合用于呈现同类数据类型或数据类型集&#xff0c;例如图片和文本。在列表中显示数据集合是许多应用程序中的常见要求&#xff08;如通讯录、…

抗D盾是什么,为什么游戏被攻击了需要抗D盾

游戏行业DDoS攻击的主要原因是因为游戏产品生命周期偏短&#xff0c;而DDoS供给成本又不高&#xff0c;只要发起攻击&#xff0c;企业为确保游戏稳定运营而不得不快速做出让步&#xff0c;致使敲诈勒索的成功率相对更高。在遭受DDoS攻击后&#xff0c;游戏公司的日损失甚至多达…

git远程分支强制覆盖本地分支

目录 第一章、问题1.1&#xff09;报错提示&#xff1a;没有为分支主机或分支配置被跟踪的分支1.2&#xff09;报错分析与解决 第二章、2.1&#xff09;本地误删代码后想要git pull拉取覆盖&#xff1a;失败2.2&#xff09;报错分析和解决 友情提醒: 先看文章目录&#xff0c;…

4.24总结

对部分代码进行了修改&#xff0c;将一些代码封装成方法&#xff0c;实现了头像功能&#xff0c;通过FileInputStream将本地的图片写入&#xff0c;再通过FileOutputStream拷贝到服务端的文件夹中&#xff0c;并将服务端的文件路径存入数据库中

Java——接口

目录 一.接口的概念 二.语法规则 三.接口使用 四.接口特性 1.接口类型是一种引用类型&#xff0c;但是不能直接new接口的对象 2.接口中每一个方法都是public的抽象方法, 即接口中的方法会被隐式的指定为 public abstract&#xff08;只能是 public abstract&#xff0c…

君正X2100 RTOS 固件升级

使用cloner工具烧写固件需要在上电之前让boot_sel[2:0]处于boot from USB模式&#xff0c;但是电路板装在机壳内部后不方便改变boot_sel[2:0]的状态&#xff0c;如果要升级固件&#xff0c;需要通过机壳留出的USB口、网口、或者无线网络进行固件更新。 一、升级方案 1、固件分…

Hadoop——Yarn基础架构

Hadoop——Yarn基础架构 Hadoop YARN&#xff08;Yet Another Resource Negotiator&#xff09;是Apache Hadoop生态系统中的一个子项目&#xff0c;它是用于集群资源管理的框架&#xff0c;负责为运算程序提供服务器运算资源&#xff0c;相当于一个分布式的操作系统平台&…