EasyX简单操作

简介:easyx是基于C++的初级图形库,可以实现较简单的图形界面操作

推荐学习网站:bilibili C语言Plus

一、基本操作

1.1 头文件

#include

1.2 坐标和设备

坐标:默认的原点在窗口左上角,X轴向右为正,Y轴向下为正,度量单位

是像素点。

设备:绘图表面。设备分为两种,一种是默认的绘图窗口,一种是IMAGE对象。通过SetWorkingImage()函数可以设置当前用于绘图的设备,设置后所有的绘图函数都会绘制在该设备上。

1.3 窗口函数

·创建初始化绘图窗口:initgraph(int width,int height,int flag=NULL)

参数解释:width:宽度 height:高度 flag:窗口样式

·关闭窗口:closegraph();

·清空绘图窗口:cleardevice();

1.4 图像绘制函数

绘图函数从填充样式可以分为三类:无填充、有边框、无边框

以画圆为例:

·circle() :无填充

·fillcircle():有边框填充

·solidcircle():无边框填充

从形状划分可分为八种:圆(circle)、矩形(rectangle)、线(line)…

1.5 设置填充颜色

setfillcolor(颜色);

1.6 设置线条样式

样式:setlinestyle(style,int height,int width);

颜色:setlinecolor(颜色);

1.7 设置背景颜色(两行代码必不可少)

setbkcolor(颜色);

cleardevice();

1.8 文字函数

·在指定位置输出字符串:outtextxy(int x,int y,str);

(注:在字符串前加上大写L;使用TEXT()函数,在其中写str;)

·设置当前文字颜色:settextcolor(颜色); RCG(a,b,c)

·设置文字样式:settextstyle(int height,int width,”楷体”);

·文字居中(自行计算距离)

1.9 设置背景模式

透明背景:setbkmode(TRANSPARENT);

二、图像处理函数

2.1 定义变量

在使用图像之前,需要定义一个变量(对象),然后把图片加载进变量才能使用

定义方法:IMAGE img;

2.2 从文件中读取图像

loadimage(&img,plmgFile,int nWidth=0,int nHeight=0,bool bResize=false)

参数解释:

plmgFile:图片文件名:相对路径:./表示当前文件夹

nWidth:图片拉伸宽度

nHeight:图片拉伸高度

bResize:是否调整IMAGE大小以适应图片

2.3 在当前设备上绘制指定图像

putimage(int dstX,int dstY,&img)

参数解释:

dstX:绘制位置的X坐标

dstY:绘制位置的Y坐标

三、鼠标消息

3.1 定义变量

ExMessage msg;

3.2 是否有鼠标消息(左,右,中,移动)

peekmessage(&msg,EM_MOUSE) 如果有消息返回True,通常会使用循环while()

判断鼠标点击的范围:(如果要显示需要在控制台上显示)

e.g.:msg.x>=50&&msg.x<=50+150&&msg.y>=50&&msg.y<=50+50

3.3 判断消息类型(switch(msg.message))

·左键单击:WM_LBUTTONDOWN

·左键双击:WM_LBUTTONCLICK

·右键单击:WM_RBUTTONDOWN

·右键双击:WM_RBUTTONCLICK

四、键盘消息——非EasyX函数

4.1 消息函数

·getch()需要使用返回值来判断 需要用到conio.h

E.g.:根据键盘输入上下左右移动

char key=getch(); switch(key):

↑键:case 72: /case ‘w’: /case ‘W’:

↓键:case 80: /case ‘s’: /case ‘S’:

←键:case 75: /case ’a’: /case ‘A’:

→键:case 77: /case ‘d’: /case ‘D’:

比如可以用键盘输入控制移动:采用x++,y++等(如果不想显示轨迹需要用cleardevice());

·GetAsyncKeyState()(推荐,使用时需要判断即if(GetAsyncKeyState(内容)))

↑键:VK_UP

↓键:VK_DOWN

←键:VK_LEFT

→键:VK_RIGHT

五、其他函数

5.1 防止图片闪屏

BeginBatchDraw(); 开始批量绘图

//中间放置绘图代码

EndBatchDraw(); 结束批量绘图

或者用:

BeginBatchDraw(); 开始批量绘图

//中间放置绘图代码

FlushBatchDraw();

//中间放置绘图代码

EndBatchDraw(); 结束批量绘图

5.2 窗口

·HWND hnd=GetHWnd();//获取窗口句柄

·SetWindowText(hnd,string);//修改窗口标题

·MessageBox(hnd,”提示内容”,”提示标题”,MB_OKCANCEL);//弹出提示窗口

MB_OKCANCEL:可以替换成MB_YESNOetc.

返回值为IDOK(确定)或IDCANCEL(取消),可以判断返回值进行操作

六、播放音乐

需要包含头文件:#include easyx.h下方

加载静态库:#pragma comment(lib,”winmm.lib”)

使用方法:mciSendString(“open ./路径 alias 别名”,0,0,0); //打开音乐

mciSendString(“play 别名 [repeat]”,0,0,0);//播放,repeat:重复

mciSendString(“close 别名”,0,0,0);//关闭音乐

你可能感兴趣的:(c++)