Win 32 API:初步了解与应用

发布时间:2026/5/20 1:01:15

Win 32 API:初步了解与应用 ◆博主名称少司府欢迎来到少司府的博客☆*: .. o(≧▽≦)o ..:*☆⭐数据结构系列个人专栏初阶数据结构_少司府的博客-CSDN博客⭐编程基础训练系列个人专栏编程基础50题_少司府的博客-CSDN博客⭐名不显时心不朽再挑灯火看文章目录一、Win32 API 介绍二、控制台程序2.1 cmd命令2.2 设置控制台相关属性三、Win32 API3.1 COOD类型 坐标类型3.2 GetStdHandle3.3 SetConsoleCursorPosition3.4 GetConsoleScreenBufferInfo3.5 SetConsoleTextAttribute3.6 GetConsoleCursorInfo3.7 GetAsyncKeyState一、Win32 API 介绍Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源外它同时也是一个很大的服务中心。调用这个服务中心的各种服务每一种服务就是一种函数可以帮助应用程序达到开启视窗、描绘图形、使用周边设备等目的。由于这些函数的服务对象是应用程序Application所以便称为Application Programming Interface简称API函数。Win32 API也就是Mircrosoft Windows 32位平台的应用程序编程接口。二、控制台程序2.1 cmd命令我们可以通过以下命令来调整控制台窗口大小mode con cols100 lines30该命令的意思是调整控制台行为30列为100。如图也可以在title后面加一串字符就可以修改控制台的标题。2.2 设置控制台相关属性想要在程序中操作控制台我们可以使用system这个函数。如图其中pause的意思是使该程序暂停这样能防止主函数返回而关闭程序。三、Win32 API3.1 COOD类型 坐标类型如图这是COORD类型的具体定义。typedef struct _COORD{ SHORT X; SHORT Y; }COORD,*PCOORD;要使用这个类型需要包含头文件Windows.h。其主要定义的是在控制台界面的坐标x、y。说到坐标这就不得不提到控制台界面的坐标取值了。在windows控制台界面中一个单位坐标x和一个单位坐标y是12的关系。并且一个窄字符占一个单位面积一个宽字符占两个单位面积。3.2 GetStdHandleGetStdHandle是一个Win32 API函数它用于从一个特定的标准设备标准输入、标准输出、标准错误中取得一个句柄用于标识不同设备的数值使用句柄可以操作设备。其中标准输入指的是键盘输入标准输出和标准错误指的是屏幕缓冲区。//获取标准输出设备的句柄 HANDLE handle GetStdHandle(STD_OUTPUT_HANDLE);3.3 SetConsoleCursorPositionSetConsoleCursorPosition函数用于设置光标位置。其中Console的意思是控制台Cursor的意思是光标。//设置坐标位置 void SetPos(int x, int y) { HANDLE handle GetStdHandle(STD_OUTPUT_HANDLE); COORD pos; pos.X x; pos.Y y; SetConsoleCursorPosition(handle, pos); }3.4 GetConsoleScreenBufferInfoGetConsoleScreenBufferInfo函数用于获取屏幕缓冲区信息。该函数需要两个参数一个是设备的句柄一个是CONSOLE_SCREEN_BUFFER_INFO类型的结构体指针。//获取坐标位置 COORD GetPos() { CONSOLE_SCREEN_BUFFER_INFO buf; GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), buf); COORD pos buf.dwCursorPosition; return pos; }3.5 SetConsoleTextAttributeSetConsoleTextAttribute函数用于设置控制台文本颜色信息。//设置字体颜色 void SetPrintColor(int color) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); }如图它也有两个参数一个是句柄一个是color控制颜色。其中color是整数代表不同颜色。3.6 GetConsoleCursorInfoGetConsoleCursorInfo函数用于获取控制台光标信息。它需要两个参数一个是句柄另一个是CONSOLE_CURSOR_INFO类型的结构体指针。该类型包含两个结构体成员。一个dwSize表示光标填充字符单元格的百分比在1到100之间另一个是bVisible表示光标的可见性默认是TRUE。//隐藏光标使其不再闪烁 void HideCursor() { CONSOLE_CURSOR_INFO cursole_info; GetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), cursole_info); cursole_info.bVisible false; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), cursole_info); }3.7 GetAsyncKeyStateSHORT GetAsyncKeyState(int vk);该函数是将键盘上每个键的虚拟值vk传递给函数函数通过返回值来判断按键的状态。该函数的返回类型是short 类型在上一次调用函数后若返回的16位short类型数据中最高位是1说明该键是按下状态是0说明是抬起状态。若最低位被置为1说明被按过否则为0。#define KEY_PRESS(vk) ((GetAsyncKeyState(vk)1)?1:0)//结果是1表示按过结果是0表示未按过本期的分享就到这里如果觉得博主的文章比较对胃口的话可以点一个小小的关注~您的三连是我持续更新的动力~

相关新闻