前言
今天在整理的时候偶然看到自己在大一的时候刚学完c语言,但是一直是黑框框,就想做图像化界面,学习了这个Easyx,当时不会用md,这会儿看看当时笔记word写的还不错,哈哈哈,然后发给大家,通过这个也可以简单学习下,当时记得是参考了一个b站的视频
应该是这个吧,看着像:【C/C++/EasyX】学编程,做游戏,小白快速入门图形编程,零基础入门到精通,学习就是这么快乐_哔哩哔哩_bilibili
1、基本绘图与文字绘制
首先帮助网址 htts'dps://docs.easyx.cn/zh-cn/intro
RGB(红,绿,蓝)RGB宏合成的十六进制的整数,每个颜色的值范围0~255
头文件 #include <graphics.h>
initgraph(int = width , int = height , flag = NULL);
第三个参数有SHOWCONSLE三个可以转到定义查看
//用于初始化绘图窗口(创建窗口)最后一个参数给一个标志,是否显示控制台····
width 指定窗口的宽度
height 指定窗口的高度
flag 窗口样式,默认为NULL SHOWCONSLE
closegraph();//关闭绘图窗口
cleardevic();//清空绘图设备
getchar(); //防止闪退
setbkcolor(); //设置背景颜色
cleardevice(); //清屏操作
画圆操作:
circle(int x,int y,int radius); 无填充
fillcircle(); 有边框填充
solidcircle(); 无边框填充
setfillcolor(颜色); 设置填充颜色
setlinecolor(颜色); 设置画线颜色
setlinstyle(线类型,像素); 线类型可以转到定义
默认起点左上角位置为中点开始以半径画圆
具体其他操作,如画椭圆,线,矩形,三角形可查help或EasyX帮助文档_干了这一碗BUG的博客-CSDN博客_easyx文档 此网址
绘制文字
outtextxy(起点位置x , y , ‘字符串’);
settextcolor(颜色); //设置文字颜色
settextstyke(高度,宽度,字体); //设置文字样式
setbkmode(TRANSPARENT); //设置文字的背景
//文字是自带默认白的背景的,会遮挡东西,可以设置这个把文字背景改成透明
使用改变字符集方法 项目-> 属性-> 配置属性 -> 高级 -> 字符集改为多字节字符集
2、图形的输出与鼠标操作
图形:
在使用图像之前需要定义一个变量(对象),然后把图像加载进变量才能使用。
- 平时定义变量都是使用的基础类型,比如:int temp;
- 在使用图像的时候需要使用easyx提供给我们的类型:IMAGE 如 IMAGE img; IMAGE主要是使用了C++封装的一个对象。
之后使用两个函数,对图像输入输出
- loadimage(IMAGE *pDstimg , LPCTSTR pimgfile , int nWIdth = 0 , int nHeight = 0 , bool bResice = false );从文件中读取图像
- pimgFile //保存图像的对象指针&img
- pImgFile //图像文件名
- 3nWIdth = 0 //图片的拉伸宽度
- nHeight = 0 //图片的拉伸高度
- bResize = false //是否调整IMGAGE的大小以使用图片
putimage(int dstX , int dstY , IMAGE *pSrcimg , DWORD dwROp = SRCCOPY);在当前设备上绘制指定图像
- dstX //绘制位置的X坐标
- dstY //绘制位置的Y坐标
- pSrcimg //要绘制的IMAGE对象指针&img
- dwROP = SRCCOPY //三元光栅的操作码 (可以不用管)
鼠标操作
-
- 鼠标操作使用MOUSEMSG类型, 比如MOUSEMSG msg;
- 然后使用MousHit()判断是否有鼠标消息(左键,右键,中间,移动)
- 如果有鼠标消息就可以进行接受鼠标消息msg = GetMouseMsg();
成员使用 Msg.uMsg //当前鼠标消息
键盘消息函数与窗口和消息框
开始批量绘图也可以使用FlusBatchDraw();
- HWND类型获取窗口句柄
音乐播放
小例子
最后有一个小例子:
代码
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
int main() {printf("hello c语言");//控制台输出文字initgraph(640, 640, SHOWCONSOLE);//构建窗口setbkcolor(RGB(0, 0,155 ));//设置背景颜色为红色 cleardevice();//清屏操作settextcolor(RGB(0, 155, 0));outtextxy(0, 0, "我的第一个图形库代码");getchar();//防止图形化闪退closegraph();system("pause");return 0;
}
效果:
今天的分享就到这里,希望可以三连支持下博主,谢谢~