【C语言新手】EasyX图形库使用 您所在的位置:网站首页 easy语言 【C语言新手】EasyX图形库使用

【C语言新手】EasyX图形库使用

2023-12-03 17:55| 来源: 网络整理| 查看: 265

目录: 一、环境搭建:1、官网下载库文件:2、点击【打开文件】安装即可 二、在VS2019中使用:1、引用头文件2、查看库函数:3、一般使用步骤: 三、附录:#include

一、环境搭建: 1、官网下载库文件:

在这里插入图片描述 在这里插入图片描述 随便点击一个下载即可,一般我们会选择最新的。

2、点击【打开文件】安装即可

请注意:一般配合VS或者VC使用。所以你的电脑应该先下VS或者VC。 在这里插入图片描述

二、在VS2019中使用: 1、引用头文件

完成了上面的【环境搭建】以后,EasyX库就包含在你的VS中了。你只需要引用头文件即可。

#include 2、查看库函数: 1、按住【Ctrl】键 2、点击头文件#include,进入这个文件 3、进入头文件#include以后,找到应一个头文件#include 同样按住【Ctrl】键,点击进入。画图函数就在这个文件中,往下翻阅即可。 3、一般使用步骤: 1、添加头文件 #include 2、编写main函数: int main(){ return 0; } 3、在main函数里面添加打开和关闭窗口的两个函数: //1.初始化一个easyx窗口 initgraph(800, 500,SHOWCONSOLE);/* ,SHOWCONSOLE 显示控制台,用于测试程序,可以删掉这个参数,则不显示控制台*/ closegraph();// 关闭图形窗口

最终效果:

#pragma once #include #include //使用getchar()函数 // int main() { //1.初始化一个easyx窗口:800x500大小 initgraph(800, 500,SHOWCONSOLE);/* ,SHOWCONSOLE 显示控制台,用于测试程序,可以删掉这个参数,则不显示*/ //其他代码请在这里完成 getchar();//防止闪退 closegraph();// 关闭图形窗口 return 0; } 三、附录:#include 头文件的函数: // 一、绘图模式相关函数 HWND initgraph(int width, int height, int flag = NULL); // 初始化图形环境 void closegraph(); // 关闭图形环境 // 二、绘图环境设置 void cleardevice(); // 清屏 void setcliprgn(HRGN hrgn); // 设置当前绘图设备的裁剪区 void clearcliprgn(); // 清除裁剪区的屏幕内容 void getlinestyle(LINESTYLE* pstyle); // 获取当前画线样式 void setlinestyle(const LINESTYLE* pstyle); // 设置当前画线样式 void setlinestyle(int style, int thickness = 1, const DWORD *puserstyle = NULL, DWORD userstylecount = 0); // 设置当前画线样式 void getfillstyle(FILLSTYLE* pstyle); // 获取当前填充样式 void setfillstyle(const FILLSTYLE* pstyle); // 设置当前填充样式 void setfillstyle(int style, long hatch = NULL, IMAGE* ppattern = NULL); // 设置当前填充样式 void setfillstyle(BYTE* ppattern8x8); // 设置当前填充样式 void setorigin(int x, int y); // 设置坐标原点 void getaspectratio(float *pxasp, float *pyasp); // 获取当前缩放因子 void setaspectratio(float xasp, float yasp); // 设置当前缩放因子 int getrop2(); // 获取前景的二元光栅操作模式 void setrop2(int mode); // 设置前景的二元光栅操作模式 int getpolyfillmode(); // 获取多边形填充模式 void setpolyfillmode(int mode); // 设置多边形填充模式 void graphdefaults(); // 重置所有绘图设置为默认值 COLORREF getlinecolor(); // 获取当前线条颜色 void setlinecolor(COLORREF color); // 设置当前线条颜色 COLORREF gettextcolor(); // 获取当前文字颜色 void settextcolor(COLORREF color); // 设置当前文字颜色 COLORREF getfillcolor(); // 获取当前填充颜色 void setfillcolor(COLORREF color); // 设置当前填充颜色 COLORREF getbkcolor(); // 获取当前绘图背景色 void setbkcolor(COLORREF color); // 设置当前绘图背景色 int getbkmode(); // 获取背景混合模式 void setbkmode(int mode); // 设置背景混合模式 // 三、颜色模型转换函数 COLORREF RGBtoGRAY(COLORREF rgb); void RGBtoHSL(COLORREF rgb, float *H, float *S, float *L); void RGBtoHSV(COLORREF rgb, float *H, float *S, float *V); COLORREF HSLtoRGB(float H, float S, float L); COLORREF HSVtoRGB(float H, float S, float V); // 四、绘图函数 COLORREF getpixel(int x, int y); // 获取点的颜色 void putpixel(int x, int y, COLORREF color); // 画点 void line(int x1, int y1, int x2, int y2); // 画线 void rectangle (int left, int top, int right, int bottom); // 画矩形 void fillrectangle (int left, int top, int right, int bottom); // 画填充矩形(有边框) void solidrectangle(int left, int top, int right, int bottom); // 画填充矩形(无边框) void clearrectangle(int left, int top, int right, int bottom); // 清空矩形区域 void circle (int x, int y, int radius); // 画圆 void fillcircle (int x, int y, int radius); // 画填充圆(有边框) void solidcircle(int x, int y, int radius); // 画填充圆(无边框) void clearcircle(int x, int y, int radius); // 清空圆形区域 void ellipse (int left, int top, int right, int bottom); // 画椭圆 void fillellipse (int left, int top, int right, int bottom); // 画填充椭圆(有边框) void solidellipse(int left, int top, int right, int bottom); // 画填充椭圆(无边框) void clearellipse(int left, int top, int right, int bottom); // 清空椭圆形区域 void roundrect (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight); // 画圆角矩形 void fillroundrect (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight); // 画填充圆角矩形(有边框) void solidroundrect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight); // 画填充圆角矩形(无边框) void clearroundrect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight); // 清空圆角矩形区域 void arc (int left, int top, int right, int bottom, double stangle, double endangle); // 画椭圆弧(起始角度和终止角度为弧度制) void pie (int left, int top, int right, int bottom, double stangle, double endangle); // 画椭圆扇形(起始角度和终止角度为弧度制) void fillpie (int left, int top, int right, int bottom, double stangle, double endangle); // 画填充椭圆扇形(有边框) void solidpie(int left, int top, int right, int bottom, double stangle, double endangle); // 画填充椭圆扇形(无边框) void clearpie(int left, int top, int right, int bottom, double stangle, double endangle); // 清空椭圆扇形区域 void polyline (const POINT *points, int num); // 画多条连续的线 void polygon (const POINT *points, int num); // 画多边形 void fillpolygon (const POINT *points, int num); // 画填充的多边形(有边框) void solidpolygon(const POINT *points, int num); // 画填充的多边形(无边框) void clearpolygon(const POINT *points, int num); // 清空多边形区域 void polybezier(const POINT *points, int num); // 画贝塞尔曲线 void floodfill(int x, int y, COLORREF color, int filltype = FLOODFILLBORDER); // 填充区域 // 五、文字相关函数 void outtextxy(int x, int y, LPCTSTR str); // 在指定位置输出字符串 void outtextxy(int x, int y, TCHAR c); // 在指定位置输出字符 int textwidth(LPCTSTR str); // 获取字符串占用的像素宽 int textwidth(TCHAR c); // 获取字符占用的像素宽 int textheight(LPCTSTR str); // 获取字符串占用的像素高 int textheight(TCHAR c); // 获取字符占用的像素高 int drawtext(LPCTSTR str, RECT* pRect, UINT uFormat); // 在指定区域内以指定格式输出字符串 int drawtext(TCHAR c, RECT* pRect, UINT uFormat); // 在指定区域内以指定格式输出字符 // 设置当前字体样式(详见帮助) // nHeight: 字符的平均高度; // nWidth: 字符的平均宽度(0 表示自适应); // lpszFace: 字体名称; // nEscapement: 字符串的书写角度(单位 0.1 度); // nOrientation: 每个字符的书写角度(单位 0.1 度); // nWeight: 字符的笔画粗细(0 表示默认粗细); // bItalic: 是否斜体; // bUnderline: 是否下划线; // bStrikeOut: 是否删除线; // fbCharSet: 指定字符集; // fbOutPrecision: 指定文字的输出精度; // fbClipPrecision: 指定文字的剪辑精度; // fbQuality: 指定文字的输出质量; // fbPitchAndFamily: 指定以常规方式描述字体的字体系列。 void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace); void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut); void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut, BYTE fbCharSet, BYTE fbOutPrecision, BYTE fbClipPrecision, BYTE fbQuality, BYTE fbPitchAndFamily); void settextstyle(const LOGFONT *font); // 设置当前字体样式 void gettextstyle(LOGFONT *font); // 获取当前字体样式 // 六、图像处理函数 void loadimage(IMAGE *pDstImg, LPCTSTR pImgFile, int nWidth = 0, int nHeight = 0, bool bResize = false); // 从图片文件获取图像(bmp/gif/jpg/png/tif/emf/wmf/ico) void loadimage(IMAGE *pDstImg, LPCTSTR pResType, LPCTSTR pResName, int nWidth = 0, int nHeight = 0, bool bResize = false); // 从资源文件获取图像(bmp/gif/jpg/png/tif/emf/wmf/ico) void saveimage(LPCTSTR pImgFile, IMAGE* pImg = NULL); // 保存图像(bmp/gif/jpg/png/tif) void getimage(IMAGE *pDstImg, int srcX, int srcY, int srcWidth, int srcHeight); // 从当前绘图设备获取图像 void putimage(int dstX, int dstY, const IMAGE *pSrcImg, DWORD dwRop = SRCCOPY); // 绘制图像到屏幕 void putimage(int dstX, int dstY, int dstWidth, int dstHeight, const IMAGE *pSrcImg, int srcX, int srcY, DWORD dwRop = SRCCOPY); // 绘制图像到屏幕(指定宽高) void rotateimage(IMAGE *dstimg, IMAGE *srcimg, double radian, COLORREF bkcolor = BLACK, bool autosize = false, bool highquality = true);// 旋转图像 void Resize(IMAGE* pImg, int width, int height); // 调整绘图设备的大小 DWORD* GetImageBuffer(IMAGE* pImg = NULL); // 获取绘图设备的显存指针 IMAGE* GetWorkingImage(); // 获取当前绘图设备 void SetWorkingImage(IMAGE* pImg = NULL); // 设置当前绘图设备 HDC GetImageHDC(IMAGE* pImg = NULL); // 获取绘图设备句柄(HDC) // 七、其它函数 int getwidth(); // 获取绘图区宽度 int getheight(); // 获取绘图区高度 void BeginBatchDraw(); // 开始批量绘制 void FlushBatchDraw(); // 执行未完成的绘制任务 void FlushBatchDraw(int left, int top, int right, int bottom); // 执行指定区域内未完成的绘制任务 void EndBatchDraw(); // 结束批量绘制,并执行未完成的绘制任务 void EndBatchDraw(int left, int top, int right, int bottom); // 结束批量绘制,并执行指定区域内未完成的绘制任务 HWND GetHWnd(); // 获取绘图窗口句柄(HWND) TCHAR* GetEasyXVer(); // 获取 EasyX 当前版本 // 八、获取用户输入 bool InputBox(LPTSTR pString, int nMaxCount, LPCTSTR pPrompt = NULL, LPCTSTR pTitle = NULL, LPCTSTR pDefault = NULL, int width = 0, int height = 0, bool bOnlyOK = true); // 鼠标消息 // 支持如下消息: // WM_MOUSEMOVE 鼠标移动 // WM_MOUSEWHEEL 鼠标滚轮拨动 // WM_LBUTTONDOWN 左键按下 // WM_LBUTTONUP 左键弹起 // WM_LBUTTONDBLCLK 左键双击 // WM_MBUTTONDOWN 中键按下 // WM_MBUTTONUP 中键弹起 // WM_MBUTTONDBLCLK 中键双击 // WM_RBUTTONDOWN 右键按下 // WM_RBUTTONUP 右键弹起 // WM_RBUTTONDBLCLK 右键双击 struct MOUSEMSG { UINT uMsg; // 当前鼠标消息 bool mkCtrl; // Ctrl 键是否按下 bool mkShift; // Shift 键是否按下 bool mkLButton; // 鼠标左键是否按下 bool mkMButton; // 鼠标中键是否按下 bool mkRButton; // 鼠标右键是否按下 short x; // 当前鼠标 x 坐标 short y; // 当前鼠标 y 坐标 short wheel; // 鼠标滚轮滚动值 (120 的倍数) }; bool MouseHit(); // 检查是否存在鼠标消息 MOUSEMSG GetMouseMsg(); // 获取一个鼠标消息。如果没有,就等待 bool PeekMouseMsg(MOUSEMSG *pMsg, bool bRemoveMsg = true); // 获取一个鼠标消息,并立即返回 void FlushMouseMsgBuffer(); // 清空鼠标消息缓冲区 四、实例Demo:

点击此处:C++完成一个消消乐



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有