//又小小修改了一下,加了一些内容^_^

阅读提示:使用EGE时要创建c++项目, 不是c噢

话不多说直接上教程

--------------------------------------------------------------------------------------------------------------------

#include <graphics.h> //使用ege的头文件
void test() {initgraph(1000, 625);      //创建窗口PIMAGE src1;//定义图像对象src1 = newimage();创建图像对象getimage(src1, "4.jpg");//从文件中读取图片putimage(0, 0, src1);//在窗口上绘制图片,相当于贴上你的背景图setfont(26, 0, "宋体");//设置字体,26是字高, 0指的是字宽根据字高自动调整, 宋体是字体setbkmode(TRANSPARENT);//这个是将文字的背景色设置成透明,否则一个字后面会有色块setcolor(BLACK);//这个是设置字体颜色for(; is_run(); delay_fps(60)) {   //is_run()判断窗口是否存在,delay_fps(60) 作用是稳定帧率并刷新窗口 ,一秒钟循环60次mouse_msg msg = {0};  //定义鼠标变量并且初始化while(mousemsg()) {  //利用mousemsg()判断有没有鼠标消息msg = getmouse();} //获得鼠标消息if((msg.x > 142 && msg.x < 391) && (msg.y > 414 && msg.y < 499) && msg.is_left() && msg.is_down()) {//插入函数} else if((msg.x > 587 && msg.x < 823) && (msg.y > 417 && msg.y < 499) && msg.is_left() && msg.is_down()) {//插入函数}}
}

注意!所有和鼠标点击有关的代码全部放在for()循环里面,也包括函数的调用,否则你就算点了界面上的相关选项,界面也不会有反应!

1.创建窗口:initgraph(窗口的宽, 窗口的高) //这里的宽高都一像素为单位

2.读取文件中的图片:最好把图片和项目都放在一个文件夹里,这样就只用写“文件名”,不然就要复制文件路径,把文件路径中的每一个单杠变成双杠,切记!

文件名是自己保存的图片的名字,可以把文件名修改成简单的数字,方便操作(使用重命名即可)

3.制作界面:制作精美的界面,往往只需要最简单的操作:直接在电脑自带的画图工具里面画

具体操作:1.先找一张好看的照片,将它裁剪成和窗口一样大,如何裁剪请自己解决

2.用画图的打开方式打开图

片文件,之后就可以自己画框,输入文字等等

very important:如果想多次更换背景,就要再使用一次putimage();换上不同的图片文件名,记得清屏哦!

//比如这样PIMAGE src1, src2;src1 = newimage();
src2 = newimage();
getimage(src1, "文件名");
getimage(src2, "文件名");
putimage(src1);//背景图是src1//中间是你的代码//想要更换背景时,就可以这样操作cleardevice();//先清屏
putimage(src2);//在把背景图贴上去就可以啦

最后就是这样啦,是不是很简单!!!

根本不需要用按钮啥的

4.确定你设置的框的位置:

比如上图中我画了一个“添加信息”,怎样才可以在鼠标点击之后进入“添加信息”的界面呢?

同样很简单!

获取鼠标消息后,用if()语句判断鼠标点击的位置,msg.x是窗口的横坐标,往右是正方向,msg.y是窗口的纵坐标,往下是正方向,其中左上角的坐标是(0,0)

注意:坐标的单位都是像素,具体查看方法可以用画图打开图片文件,将你的鼠标点在框的四个角就可以看到具体横纵坐标,也就是像素。

接着用msg.is_left() 和msg.is_down()判断你是否按下鼠标左键即可

5.cleardevice()的使用,作用是清屏   一定要用,否则你在上个界面留下的痕迹,这个界面还会有,属于是叠加buff了

建议在putimage()之前使用;

6.界面输出文字:

推荐使用xyprintf(横坐标,纵坐标,“输出的文字”);这个是单行输出

注意: 1.这里的横纵坐标是输出的第一个字的左上角的坐标;

2. \n,\t在xyprintf()里面都无效

3.EGE也有多行输出,请自行查找资料

4. 横纵坐标不光可以写具体的数组,里面也可以是含字母的参数,因为如果你想遍历文件,是要在多行输出的,比如30 + i; 但这里的i也是要改变的,不然依旧是在一行输出!

可以这样:for() {

xyprintf(0, 30 + i, "");

i++;

}

7.输入框的使用:

如果你想让用户输入信息的话,可以使用EGE自带的输入框,咱们怎么简单怎么来

inputbox_getline("输入框标题", "输入框的提示内容", 一个char型数组, 数组大小);

char input[10];

例如:inputbox_getline("输入", "请输入账号密码", input, 10);

接着用户输入的信息就会存在input数组里面啦

注:也可以自己创建输入框,请自行查找资料

8.退出EGE

程序运行时会有两个框,只有return 0是不够的,还要在return 0之前加上 closegraph();用来关闭EGE

到这里EGE的新手版使用教程就已经全部介绍完啦,还有啥不懂的再看看我贴的代码,也可以自行查阅相关资料~~~~~byebye

[C语言界面设计]EGE图形化界面简易版教程(适合初学者)相关推荐

  1. python中的图形界面设计_python图形化界面设计(tkinter)一全面介绍

    3.3.单选按钮:(Radiobutton)是为了响应故乡排斥的若干单选项的单击事件以触发运行自定义函数所设的,该控件排除具有共有属性外,还具有显示文本(text).返回变量(variable).返回 ...

  2. python界面设计-python图形化界面设计tkinter

    匿名用户 1级 2017-12-13 回答 python提供了多个图形开发界面的库,几个常用Python GUI库如下: Tkinter: Tkinter模块("Tk 接口")是P ...

  3. 管理系统界面设计python_python图形化界面设计(wxpython)一布局管理

    本篇内容来自https://www.cnblogs.com/-wenli/p/12149850.html 1.布局分析和注意点 例程主要是Sizer布局应用.wx.BoxSizer的布局方向分为横向和 ...

  4. java 高级 图形化界面_java高级图形化界面

    java.awt.event.WindowAdapter 是一个接口 学生的答案: C 标准答案: C 该题分数:4.0 学生得分: 4.0 分 9. 在基于 Swing 的图形用户界面设计中,面板属 ...

  5. qpython3可视图形界面_PySide——Python图形化界面入门教程(三)

    PySide--Python图形化界面入门教程(三) --使用内建新号和槽 --Using Built-In Signals and Slots 上一个教程中,我们学习了如何创建和建立交互widget ...

  6. wxpython有没有可视化设计_python图形化界面设计(wxpython)三树控件(wx.TreeCtrl)

    本篇内容来自https://www.jb51.net/article/181158.htm wxPython树控件介绍 树(tree)是一种通过层次结构展示信息的控件,如下图所示是树控件示例,左窗口中 ...

  7. java计算器布局设计_Java图形化界面设计——布局管理器之GridLayout(网格布局) 之计算器...

    代码如下: import java.awt.*; import javax.swing.*; public class GridFrame extends JFrame { // 定义字符串数组,为按 ...

  8. 图形化界面扫雷(C语言+easyx实现,多图教学)

    扫雷 前言 准备工作 EasyX的下载 一些准备知识 头文件的引用 图形化界面的创建 图形化界面简介 图片加载与放置图片 鼠标操作 提示框 其它的准备知识 思路分析 代码实现 准备工作 初始化游戏的函 ...

  9. Python基础笔记_Day14_Python图形化界面、Python GUI、tkinter、Python英汉词典

    Day14_Python图形化界面.Python GUI.tkinter.Python英汉词典 14.01_Python语言基础(Python实现英汉字典)(掌握) 14.02_Python语言基础( ...

最新文章

  1. April Fools Contest 2018
  2. Python环境的安装(Anaconda+Jupyter notebook+Pycharm)
  3. python脚本例子_python dict 字典 以及 赋值 引用的一些实例(详解)
  4. 洛谷P1280 caioj 1085 动态规划入门(非常规DP9:尼克的任务)
  5. 数组越界怎么判断_算法连载之求解两个有序数组的中位数
  6. Python爬虫教程(四)
  7. but was actually of type 'com.sun.proxy.$Proxy**'的两种解决方法
  8. 虚拟机磁盘扩容parted
  9. ADSL拨号中出现的错误代码
  10. PostgreSQL学习笔记9之事务隔离
  11. 你......真的了解我吗?
  12. 图片合成gif_使用在线图片工具处理静态和动态图片的技巧
  13. ORACLE事务提交
  14. Flutter AnimatedAlign 使用解析
  15. C++语言引用的介绍和示例
  16. linux bc安装的代码,BCLinux安装教程新篇
  17. [Java] 蓝桥杯ADV-202 算法提高 最长公共子序列
  18. C#-XML-数据传输
  19. python在工程造价的作用_工程预算的意义何在
  20. webservice的wsdl文件怎么生成

热门文章

  1. 安卓手机主题软件_安卓手机直播软件:绝影Live
  2. 电脑术语之五主板术语
  3. win7系统客户端无法访问ftp服务器,win7系统不能访问ftp的解决方法
  4. Excel如何快速将多列数据复制到一列中
  5. Linux证书生成器,ssl证书在线生成器(在线生成证书请求文件CSR)
  6. 微信公众号文章已经获授权加入白名单了,为什么系统还是自动替换成原文章?
  7. 批处理文件快捷操作 .bat指令
  8. web服务启动不了解决流程
  9. MAL-Gold Nanoparticle/Au nanoparticles纳米金颗粒/金纳米粒子|50nm浓度:0.5mg/ml
  10. 如何用revit打不开服务器文件,Revit官方教程丨关于打开Revit文件