定义坐标函数

键盘交互初体验(1)

一.效果实现

#include
#include
using namespace std;


void gotoxy(int x,int y)//函数名使用gotoxy可以做到见名知意
{
     
    HANDLE n;//句柄,对象的索引
    COORD pos;
    pos.X=x;
    pos.Y=y;

    n=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(n,pos);
   
}
int main()
{
     
    gotoxy(33,22);
    cout<<"here"<<endl;
    return 0;
}


二.了解细节

1.先了解下windows控制台的坐标系

定义坐标函数_第1张图片

2.COORD

​ COORD是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标

​ 其定义为:

typedef struct _COORD {
     
SHORT X; // horizontal coordinate
SHORT Y; // vertical coordinate
} COORD;

代码中 COORD pos就是定义一个字符在控制台屏幕上的坐标的对象pos

3.HANDLE

HANDLE:句柄,是Windows用来表示对象的(不是C++的对象)

在windows程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时会为他们分配内存,并返回标示这些资源的标示号,即句柄 [1] 。

句柄指的是一个核心对象在某一个进程中的唯一索引,而不是指针。

4.GetStdHandle

GetStdHandle是一个Windows API函数。它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄(用来标识不同设备的数值)。可以嵌套使用。

定义坐标函数_第2张图片

5.SetConsoleCursorPosition

SetConsoleCursorPosition是一个window api;作用是设置控制台(cmd)光标位置

SetConsoleCursorPosition(n,pos);
    /*定位光标位置的函数,坐标为GetStdHandle()返回标准的输出的句柄,也就是获得输出屏幕缓冲区的句柄,并赋值给对象pos*/

三.体会

学校的大一年度项目我打算用Qt实现一个游戏,但网上动辄几十小时,十几小时的教程令人头疼,望而生畏,如果循序渐进式的学习需要每天挤出很多时间,而采用中间突破式的学习方法,先上手,看到所得效果,再去学习语法细节,可以更快速的掌握项目所需知识与应用,提高学习效率

你可能感兴趣的:(C++入门,c++,c语言,交互设计)