EasyX是针对V的免费绘图库,简单易用,学习成本低,应用广泛。
比如:可以基于Easy X图形库很快的用几何图形化出一个房子,或者一辆移动的小汽车,可以使用该库编写俄罗斯方块,贪吃蛇,五子棋等小游戏
Easyx库的使用:***#include
大家在初中物理都学过一个知识点——光的原色是红 绿 蓝。
用RGB宏合成颜色,实际上合成出来的颜色是一个十六进制的整数。
RGB:每个颜色部分的值都是0~255
获取颜色合成的方法:qq自带的截图功能中,按c复制当前色号,
== RGB(R像素,G像素,B像素)<=>RED BLUE GREAN==
窗口绘制函数用于窗口的一些操作
创建窗口函数:initgraph(int width,int height,int flag=NULL)
width->指定窗口宽度
heigh->指定窗口高度
flag-> 窗口的样式,默认为NULL
关闭绘图窗口:closegraph();
清除图形屏幕:cleardevice();
接收窗口:(三种方法,通常放在倒数第二)
#include
1.getch();
2.getchar();
3.system(“pause”);//该方法较为常用
图形绘制函数用于窗口上绘制各种图形,绘制图形分为三类: 无填充,有边框填充,无边框。
例:圆:
1. circle();//无填充
2. fillcircle();//有边框填充
3. solidcircle();//无边框填充
从形状来分类,常用的可以分为八种:
图形 | 函数 |
---|---|
画圆 | circle() |
画椭圆 | ellipse() |
画扇型 | pie() |
画多边形 | polygon() |
画矩形 | rectangle() |
画圆角矩形 | roundrect() |
画线 | line() |
画点 | putpixel() |
设置填充颜色:setfillcolor();先调用函数设置颜色,然后进行circle()等函数;
设置线条颜色函数:setlinecolor();
设置线条样式:setlinestyle(PS_SOL ID,5);//实线,宽度
设置背景颜色:setbkcolor(RED);
清屏操作:cleardevice();//将原来背景色清除后才会设置好新色,(先设置,再清屏)
outtextxy(int x,int y,LPCTSR str);在指定位置输出字符串(默认字体颜色是白色),应该先设置字体颜色,再使用当前函数
举例:outtextxy(40,40,“你好”)//此处报错的原因是因为字符集问题导致,解决方式:
设置当前文字颜色:settextcolor(COLORREF color)
设置字体样式:settextstyple(int nheight,int nwidth,LPCTSTR ipszFace)
nheight->字体高度 nwidth->字体宽度 如果是0,比例自适应,”楷体“字体是有背景的,需要先设置背景模式,setbkmode(TRANSP ARENT透明先 settextstyle()->setbkmode()->outtextxy();
文字设定:
文字居中处理:
textheight(LPCTSTR str):获取字符串实际占用像素高度,textwidth(LPCTSTR str):获取字符串实际占用像素宽度;
fillrectangle(左上角X像素,左上角Y像素,右上角X像素,右上角Y像素);
settextcolor(RGB(189.23,200));设置文字颜色
char arr[]="同学"
int width=(右下角X像素-左上角X像素-textwidth(arr))/2;
int height=(右Y-左Y-textheight(arr))/2;
//求矩形框和字符关系来进行居中处理
outtextxy(width+左X,height+左Y,“同学”);
鼠标消息使用需要MOUSEMSG类型,比如MOUSEMSG msg;
然后使用Mousehit() 判断是否有鼠标消息(左键,右键,中间,移动),如果有鼠标消息就可以进行接收鼠标消息 msg=GetMouseMsg();
鼠标消息主要成员:(结构体)
uMsg 当前鼠标消息;
x 当前鼠标x坐标
y 当前鼠标y坐标
uMsg可用来判断当前鼠标消息是什么消息,(WM_LBUT OND OWN鼠标左键,WM_RBUT OND OWN 鼠标右键),
举例:
initgraph(600,500,1);//--->可以模拟点击操作
while(1){
if(MouseHit()){
MOUSEMSG msg=GetMouseMsg();
if(msg.x>200&&msg.x<500&&msg.y>100&&msg.y<200){
//限制在矩形中
printf("欢迎大家\n");
}
switch(msg.uMsg){
case WM_LBUT OND OWN:左键按下,可以添加矩阵范围
outtextxy(400,400."鼠标左键");break;
case WM_RBUT OND OWN:右键按下
outtextxy(400,400,"鼠标右键");break;
}
}
}
systrm("pause");
closegraph();
return 0;
图像处理函数用于窗口上显示图片,在使用之前,需要定义一个变量(对象),然后把图片加载进变量才能进行使用,在使用图像的时候使用easyx提供的类型:IMAGE,如:IMAGE img;
从磁盘上读取图像:lvoid(IMAGE *pDstlmg,LPCTCTR plmgFile,int nWidth=0,int nHeight=0,bool bResize=false);
pDstlmg->保存图像的IMAGE对象指针&img
plmgFile->图片文件名
nWIdth=0->图片拉伸宽度
nHeight=0->图片拉伸高度
bResize=false->是否调整IMAGE的大小以适应图片
在当前设备上绘制在指定图像:putimage(int dstX,int dstY,IMAGE *pSrcimg,dwRop=SRCCOPY);
dstX->绘制位置的x坐标
dstY->绘制位置的y坐标
pSrclmg->要绘制的IMAGE对象指针 &img
dwRop=SRCCOPY->三元光操作符
举例:
IMAGE img;//定义一个变量
loadimage(&img,"./图片名.后缀");//加载图片
putimage(0,0,&img);
//若想要调整大小:
loadimage(&img,"./图片名.后缀",50,50);//指定新大小
获取窗口句柄:==GetHWnd(); ==获取之后可以用来操作窗口
获取窗口句柄:HWD hWnd=GetHWnd();
修改窗口标题:SetWindowText(hWnd,“love”);
设置对话框:MessageBox(hWnd,“消息体”,“标题”,MB_OKCANCEL);
头文件:Windows.h(若引入了graphics.h则无需包含),然后需要使用静态库,winm.lib
打开音乐:mciSendString(“open./ThatGirl.mp3 alias BGM”,NULL,0,NULL);
播放音乐:mciSendString(“play BGM”,NULL,0,NULL);
#include
#include //包含多媒体设备接口函数
#pragma comment(lib,"winmm.lib")
void BGM(){
//打开音乐,播放音乐,alias 取别名repeat 重复播放
mciSendString("open./ThatGirl.mp3 alias BGM",0,0,0);
mciSendString("play BGM",0,0,0);
if(0){
mciSendString("close BGM",0,0,0);
}
}