Hello同志们,想必大家学了C++,都想用图形编程,都想过接触什么unity等做那种有图形画面的程序,而不是dev-c++原版的字符数字,但是unity都不支持c+ +语言!!
怎么办?
你算是来对地方了
我教你直接在dev-c++做图形程序
1.首先,我们需要给dev-c++添加一个小小的图形库——EasyX
进入EasyX 图形库插件官网
EasyX官网
点击右上角的“下载”
在EasyX_26.1.1(2026-1-1更新)这一栏中往下滑,点击“More”
找到“下载地址”,点击 EasyX_for_MinGW 25.9.10 (该版本支持使用 MinGW 的编译器,例如 Dev-Cpp、CLion、Code::Blocks、CFree 等) 中的 “EasyX_for_MinGW 25.9.10”
找到并点击“点击这里下载 easyx4mingw_25.9.10”
把下载好的.zip解压
ㅤㅤㅤㅤㅤㅤㅤ↓
ㅤ
OK了,你已经完成80%的工作了
关掉现在的c++进程
找到你桌面上的c+ +快捷方式
我以 Embarcadero_Dev-Cpp 和 Red Panda Dev-C++ 举例
右键你桌面上的c++快捷方式,点“属性”
点“打开文件所在位置”(左边的是Embarcadero_Dev-Cpp,右边的是Red Panda Dev-C++,下同)
Embarcadero_Dev-Cpp打开“TDM-GCC-64”文件夹
Red Panda Dev-C++打开“MinGW32”文件夹
Embarcadero_Dev-Cpp打开“x86_64-w64-mingw32”文件夹
Red Panda Dev-C++不动(如果文件夹里有x86_64-w64-mingw32文件夹,就打开这个,然后做的操作就在这个文件夹里进行)
打开你解压的easyx4mingw_25.9.10文件夹
1.
Embarcadero_Dev-Cpp:
把easyx4mingw_25.9.10中的“lib64”中的文件“libeasyx.a”和“libeasyxw.a”文件复制到Embarcadero_Dev-Cpp里的“lib”(这是Windows电脑系统是x64,如果是x32,就把easyx4mingw_25.9.10中的“lib32”中的“libeasyx.a”“libeasyxw.a”复制到Embarcadero_Dev-Cpp里的“lib32”)
Red Panda Dev-C++:
把easyx4mingw_25.9.10中的“lib64”中的文件“libeasyx.a”和“libeasyxw.a”文件复制到Red Panda Dev-C+ + 里的“lib”(这是Windows电脑系统是x64,如果是x32,就把easyx4mingw_25.9.10中的“lib32”中的“libeasyx.a”“libeasyxw.a”复制到Red Panda Dev-C+ +里的“lib”)
2.
Embarcadero_Dev-Cpp:
把easyx4mingw_25.9.10中的“include”中的文件“easyx.h”和“graphics.h”文件复制到Embarcadero_Dev-Cpp里的“include”
Red Panda Dev-C++:
把easyx4mingw_25.9.10中的“include”中的文件“easyx.h”和“graphics.h”文件复制到Red Panda Dev-C++里的“include”
厉害👍!你已经完成90%的工程了!
我们继续:
打开你的c++
Embarcadero_Dev-Cpp:
点最上面一栏的“工具”,再点“编译选项”
勾选“编译时加入以下命令”,在下面的打字框中复制“-fexec-charset=GBK -static-libstdc++ -static-libgcc -leasyx -lgdi32 -lole32 -lwinmm”到里面,再点确定
Red Panda Dev-C++:
点最上面一栏的“工具”,再点“编译选项”
勾选“编译时加入以下参数”,在下面的打字框中复制“-static-libstdc++ -static-libgcc -leasyx -lgdi32 -lole32 -lwinmm”到里面,再点确定
好了,完结撒花🎉🎉🎉
一下是测试代码,如果能正常显示一个黄色圆形和蓝色Hello就安装成功了!(刚运行可能会等一会在弹出另一个窗口,在这个窗口中会有黄色圆形和蓝色Hello)
一下是EasyX的知识点,直接用就行
头文件
#include <graphics.h> // 或 #include <easyx.h> - 绘图、窗口、鼠标键盘
#include <conio.h> // 键盘输入(_getch, _kbhit)
#include <windows.h> // 系统级函数(键盘、鼠标、时间、消息)
#include <graphics.h> // 图形库
#include <windows.h> // Windows API
#include <conio.h> // 控制台输入
#include <vector> // 容器
#include <cmath> // 数学
#include <ctime> // 时间
#include <cstdlib> // 随机
#include <cstdio> // 格式化
// 检测按键是否按住
if (GetAsyncKeyState(VK_LEFT) & 0x8000) { /* 左键按住 */ }
// 检测按键是否被单击
if (GetAsyncKeyState('W') & 0x0001) { /* W键被按下一次 */ }
// 方法1:实时获取鼠标位置
POINT cursor;
GetCursorPos(&cursor);
ScreenToClient(GetHWnd(), &cursor);
int mouseX = cursor.x;
int mouseY = cursor.y;
// 方法2:检测鼠标点击
if (MouseHit()) {
MOUSEMSG msg = GetMouseMsg();
if (msg.uMsg == WM_LBUTTONDOWN) {
// 左键按下
}
if (msg.uMsg == WM_LBUTTONUP) {
// 左键松开
}
}
// 检测鼠标按住
if (GetAsyncKeyState(VK_LBUTTON) & 0x8000) { /* 左键按住 */ }
// 检测鼠标按住
if (GetAsyncKeyState(VK_LBUTTON) & 0x8000) { /* 左键按住 */ }
// 加载图片
IMAGE img;
loadimage(&img, "sprite.png");
// 绘制图片
putimage(x, y, &img);
// 带透明效果
putimage(x, y, &img, NOTSRCERASE);
// 常用按键代码
VK_LEFT // 左箭头
VK_RIGHT // 右箭头
VK_UP // 上箭头
VK_DOWN // 下箭头
VK_SPACE // 空格
VK_RETURN // 回车
VK_ESCAPE // ESC
常用函数速查表
函数 作用 示例
initgraph(w, h) 创建窗口 initgraph(800, 600)
closegraph() 关闭窗口 closegraph()
cleardevice() 清屏 cleardevice()
setbkcolor(color) 设置背景色 setbkcolor(WHITE)
setlinecolor(color) 设置线条颜色 setlinecolor(RED)
setfillcolor(color) 设置填充颜色 setfillcolor(BLUE)
circle(x, y, r) 画空心圆 circle(100, 100, 50)
fillcircle(x, y, r) 画实心圆 fillcircle(100, 100, 50)
rectangle(x1,y1,x2,y2) 画空心矩形 rectangle(50,50,200,200)
fillrectangle(x1,y1,x2,y2) 画实心矩形 fillrectangle(50,50,200,200)
line(x1,y1,x2,y2) 画线 line(0,0,100,100)
outtextxy(x, y, text) 显示文字 outtextxy(10,10,_T("Hello"))
settextstyle(size,0,font) 设置文字样式 settextstyle(30,0,_T("宋体"))
Sleep(ms) 等待毫秒 Sleep(100)
_getch() 等待按键 _getch()
调整line函数的线条类型:
setlinestyle(); //调整类型代码( 类型 , 粗细,数字 )
值含义
PS_SOLID (0)线形为:————
PS_DASH (1) 线形为:------------
PS_DOT (2) 线形为:············
PS_DASHDOT (3)线形为:-·-·-·-·-·-·
PS_DASHDOTDOT (4)线形为:-··-··-··-··
PS_NULL (5)线形为不可见。
调整fill函数的填充图案:
setfillstyle(); //调整类型代码( 类型 , 图案(当“类型”为BS_HATCHED时有效) )
style的值如下:
BS_SOLID 0 完全填充。
BS_NULL 1 不填充。
BS_HATCHED 2 图案填充。
BS_PATTERN 3 自定义图案填充。
BS_DIBPATTERN 5 自定义图像填充。
指定填充图案,仅当 style 为 BS_HATCHED 时有效,hatch 参数如下:
HS_HORIZONTAL
HS_VERTICAL
HS_FDIAGONAL
HS_BDIAGONAL
HS_CROSS
HS_DIAGCROSS
颜色常量
常量 RGB值 颜色
BLACK RGB(0,0,0) 黑色
WHITE RGB(255,255,255) 白色
RED RGB(255,0,0) 红色
GREEN RGB(0,255,0) 绿色
BLUE RGB(0,0,255) 蓝色
YELLOW RGB(255,255,0) 黄色
CYAN RGB(0,255,255) 青色
MAGENTA RGB(255,0,255) 紫色
获取鼠标位置(无延迟)
//获取鼠标位置
POINT cursor;
GetCursorPos(&cursor);
ScreenToClient(GetHWnd(), &cursor);
//mouseX为鼠标x坐标,mouseY为鼠标y坐标
int mouseX = cursor.x;
int mouseY = cursor.y;
识别鼠标左键按下(只要按下就触发)、
if (GetAsyncKeyState(VK_LBUTTON) & 0x8000)
识别鼠标左键按下(一次只触发一次,长按也只触发一次)
if (GetAsyncKeyState(VK_LBUTTON) & 0x0001)
常用鼠标按键代码
按键 代码 说明
左键 VK_LBUTTON 鼠标左键
右键 VK_RBUTTON 鼠标右键
中键 VK_MBUTTON 鼠标中键
X1键 VK_XBUTTON1 鼠标侧键1
X2键 VK_XBUTTON2 鼠标侧键2
流畅代码:
BeginBatchDraw(); //放在代码总循环的开头
EndBatchDraw(); //放在代码总循环的末尾
我自己做的代码(画图程序)
用法:
1程序打开时是输入画图窗口的长和宽,输入玩输入颜色值(单位:像素)
2颜色值:按1白色笔 按2红色笔 按3绿色笔 按4蓝色笔 按5黄色笔 按6青色笔 按7紫色笔 按空格黑色笔
3按ESC清屏
4长按E画笔变粗,长按Q画笔变细