图形化界面

2023-10-26

一、引入图形化界面

1.下载Easyx库
2.在下载完easyx库后引入头文件
#include<graphics.h>

二、关于Easyx的基本函数操作

2.1颜色配比函数

RGB(0,0,0):代表黑色,表示红绿蓝的配比
RGB(255,255,255):代表白色
也可以用BLACK、WHILE、RED等代表颜色

2.2EasyX的坐标(有负数区分)

x、y的坐标单位:像素
当画一个矩形的时候:由左上角的坐标和右下角的坐标决定
圆:中心坐标,半径
前提条件:在窗口中画坐标

2.3窗口函数函数

1)初始化窗口:initgraph(800,600) //长800,宽600
system(“pause”) ; //暂停窗口,请按任意键继续,也可用getchar
将窗口和控制台都展示出来:initgraph(800,600,SHOWCONSOLE);
SHOWCONSOLE:展示控制台
NOCLOSE:没有关闭功能 //initgraph(800,600,NOCLOSE)
2)关闭窗口:closegraph();

三、关于Easyx的实际操作(代码实现)

3.1颜色操作的代码实现原理

int main() {
	initgraph(800, 600,NOCLOSE);//初始化窗口
	setbkcolor(RED);//要想变为红色,先消除黑色,或者清屏
	cleardevice();//清屏
	for (int i = 0; i < 256; i++) {//使窗口展现出渐变色
		//设置背景颜色
		//setbkcolor(RED);
		setbkcolor(RGB(i, i, i));
		cleardevice();
		Sleep(50);  //暂停毫秒(5ms);
	}

	system("pause");
	closegraph();
}

3.2坐标操作的代码实现原理

关于矩形的坐标操作函数

int main() {
	initgraph(800, 600, NOCLOSE);//初始化窗口
	rectangle(100,50,150,200);//在窗口里面画矩形
	setfillcolor(YELLOW);//填充矩形颜色为黄色
	fillrectangle(100, 50, 150, 200);//将黄色填满矩形,有边框填充
	system("pause");
	closegraph();
}

关于圆的坐标操作函数

int main() {
	initgraph(800, 600, NOCLOSE);
	//circle(0, 0, 50); // 无填充,显示1/4的圆
	//solidcircle(50, 50, 50);  //无边框填充
	//圆圈填充色  黄色  圆圈边框颜色 红色
	setfillcolor(YELLOW); //圆圈填充色
	setlinecolor(RED);   //圆圈边框
	setlinestyle(PS_SOLID,5);//设置边框的宽度为5像素,边框是实线
	fillcircle(50, 50, 50); //填充颜色为白色的圆,有边框填充
	system("pause");
	closegraph();
}

3.3文字操作的代码实现原理

int main() {
	initgraph(800, 600, NOCLOSE);
    setbkcolor(RED);
    cleardevice();//清屏,清除原先内容
 
	//文字设定
	settextcolor(RED);//设定文字颜色为红色,原先默认颜色为黑色

	//settextstyle(30, 20, "黑体");//报错 默认const char*,但其实是带有编码格式的 wchar_t 类型
	//修改方法,加大写“L”,或者在项目中打开—属性—高级—字符集—多字节字符集
	
	settextstyle(50, 50, "黑体");//文字宽度  文字高度  自适应大小
	//登录—矩形框—居中处理

	/*setbkcolor(WHITE);
	cleardevice();*/
	setlinecolor(BLACK);
	setlinestyle(PS_SOLID,3);
    fillrectangle(100, 100, 400, 200);
	 RECT rect = { 100, 100, 400, 200 };
   //去除文字的背景色,透明背景  
   setbkmode(TRANSPARENT);
   drawtext("登录", &rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
	system("pause");
	closegraph();
}

3.4鼠标操作的代码实现原理

//鼠标点击操作:点击登录
int main() {
	initgraph(800, 600, SHOWCONSOLE);
	//文字设定
	settextcolor(RED);//设定文字颜色为红色,默认颜色黑色

	//settextstyle(30, 20, "黑体");//报错 默认const char*,但其实是带有编码格式的 wchar_t 类型
	//修改方法,加大写“L”,或者在项目中—属性—高级—字符集—多字节字符集

	settextstyle(50, 50, "黑体");//文字宽度  文字高度  自适应大小
	//登录—矩形框—居中处理

	setbkcolor(WHITE);
	cleardevice();
	setlinecolor(BLACK);
	setlinestyle(PS_SOLID, 3);
	fillrectangle(100, 100, 400, 200);
	RECT rect = { 100, 100, 400, 200 };

	drawtext("登录", &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);

	//水平居中  垂直居中   单行显示
	/鼠标监听
	MOUSEMSG msg;

	while (1) {
		if (MouseHit()) { //监听是否有鼠标动作
			msg = GetMouseMsg(); //获取当前鼠标点击信息(umsg,x,y)
			if (msg.x >=100&&msg.x<=400&&msg.y>=100&&msg.y<=200 ) {
				switch (msg.uMsg)
				{
				case WM_LBUTTONDOWN:
					printf("点击左键啦  x=%d,y=%d\n", msg.x, msg.y);
					break;
				case WM_RBUTTONDOWN:
					printf("点击右键啦  x=%d,y=%d\n", msg.x, msg.y);
				default:
					break;
				}
			}
		}
	}


	system("pause");
	closegraph();
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图形化界面 的相关文章

  • C/C++中调用SQLITE3

    C C 中调用SQLITE3 2011 08 04 17 31 09 分类 LINUX C C 中调用SQLITE3的基本步骤 Sqlite 是一个面向嵌入式系统的数据库 编译完成只有200K 同时支持2T的数据记录 对于嵌入式设备是一个很
  • 操作系统与Linux篇之卷首语

    2023年7月23日 周日晚上 通过纯粹地看操作系统相关书籍来学习操作系统实在是太枯燥和抽象了 我看不到实现的细节 我看不到实际的操作系统代码 这让我学得很难受 所以我决定结合开源的Linux来学习操作系统 我发现这样做不仅学起来更加有趣
  • Expecting property name enclosed in double quotes解决篇

    作者 关注了 Github Github 掘金 进去看看 爱好 Americano More Ice QQ学习交流群 new 811792998 问题 json decoder JSONDecodeError Expecting prope
  • spring boot: 输出json

    spring boot 输出json 注意 关闭java的Terminate后 在重新启动 否则报错 app java启动配置 package com muyang boot1 import org springframework boot
  • curl 命令的学习笔记

    curl 命令的学习笔记 curl 官网 https curl haxx se curl 全称 CommmandLine URL 或 CommandLine Uniform Resource Locator 是用于从服务器传输传输数据或向服

随机推荐

  • 【ARM】Linux内核驱动之定时器

    作者主页 凉开水白菜 作者简介 共同学习 互相监督 热于分享 多加讨论 一起进步 专栏资料 https gitee com stylle linux code 点赞 收藏 再看 养成习惯 订阅的粉丝可通过PC端文末加我微信 可对文章的内容进
  • set -e -x 等等的作用

    set指令能设置所使用shell的执行方式 可依照不同的需求来做设置 a 标示已修改的变量 以供输出至环境变量 b 使被中止的后台程序立刻回报执行状态 C 转向所产生的文件无法覆盖已存在的文件 d Shell预设会用杂凑表记忆使用过的指令
  • VUE 输入框实现光标插入,设置光标位置并删除光标内容

    最近做项目遇到这样一个需求 可以往输入框指定光标出插入内容 并且当删除插入的内容时会先将插入的内容进行光标选中给用户进行提示 当再次删除时才删除内容 而这个需求的核心就在 setSelectionRange 设置光标位置 这个dom api
  • Docker之Nacos的持久化和集群部署

    注1 小插曲 由于虚拟机分配的内存为1G 开到第四个容器时 由于内存不够导致容器启动失败 重新设置4G内存后启动成功 ok 正式进入主题 一 Docker mysql 5 7的持久化存储及远程连接 1 拉取相关镜像 目前网络模式为 brid
  • Flutter中 解决自定义阿里妈妈图标一直显示不出来的问题

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 前言 Flutter中 自定义图标一直显示出来的问题 这里引用的是阿里妈妈图标 问题解决 位置一定要对应好
  • 解决小程序报错getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.json

    报错 1 uniapp项目 在manifest json中打开源码视图 小程序特有相关 mp weixin appid 你的开发者id setting urlCheck true es6 true postcss true minified
  • 【Scala入门】scala基础语法:类和对象,变量和常量

    上一篇请移步 Scala入门 Scala下载及安装 Windows 以及Idea创建第一个scala项目 水w的博客 CSDN博客 目录 一 Scala 二 Scala基础语法 2 1 注释与标识符规范 2 2 变量与常量 案例 变量声明和
  • 摩尔定律到摩尔第二定律

    摩尔定律相信大家都不陌生 由英特尔创始人之一戈登 摩尔提出来的 其内容为 当价格不变时 集成电路上可容纳的元器件的数目 约每隔两年便会增加一倍 而普遍的说法是约每隔18个月便会增加一倍 各种说法总结起来就是 1 集成电路芯片上所集成的电路的
  • 【docker】/var/lib/docker/overlay2/ 占用磁盘问题 最终解决方案

    找IT 挂载了新磁盘 比如 data2 100G 在docker配置文件中 加上这个 systemctl daemon reload 重启docker服务即可 会导致此服务器上的所有docker 容器丢失 需要重新部署 还会导致一个问题 d
  • Hibernate参数校验报错:No validator'javax.validation.constraints.Size' validating type 'java.lang.Integer'.

    javax validation UnexpectedTypeException HV000030 No validator could be found for constraint javax validation constraint
  • Python网络爬虫学习笔记(三)正则表达式

    正则表达式 正则表达式是处理字符串的强大工具 它有自己特定的语法结构 有了它 实现字符串的检索 替换 匹配验证 1 实例引入 正则表达式匹配 也就是用一定的规则将特定的文本提取出来 开源中国提供了正则表达式测试工具 https tool o
  • 虚拟机升级glibc(libc), 导致段错误等问题

    由于确实glibc高版本 需要升级glibc 导致出现段错误等信息 只剩下pwd cd等命令可以执行 这个时候需要靠补全命令查询到原系统使用的libc 2 xx文件 然后使用sln 原系统的重新索引libc so 6文件 sln lib64
  • SOA是什么?

    写这样的blog很容易被人砸砖头 而且我现在在专心做BPEL的研究 http hongsoft iteye com admin blogs 287353 也没有必要现在趟这个混水 不过想想 还是有话要说 定义 SOA是一种做架构的范式 这个
  • FreeSwitch数据库

    Freeswitch数据库 一 ODBC DSN 1 概念 ODBC 开放数据库连接 Open Database Connectivity ODBC https baike baidu com item ODBC 是为解决异构数据库间的数据
  • 线性回归(两种方式代码实现)

    方式一 最小二乘法 正规方程 公式推导 其中 代码实现 1 导入库 import numpy as np from sklearn datasets import load boston boston load boston x bosto
  • 前端面试总结及建议

    最近 由于项目组刚成立不久 团队处于天地初开的混沌状态 人员配置不齐 急需一大股新鲜血液融入 为此 开启了一段时间与求职面试者的博弈之路 如今的IT大环境 似乎每个公司一年四季都处于招人状态 而同时又有一大批无论是离职还是在职人员期许找一个
  • Linux操作命令笔记

    Linux Linux的字母大小写 下载和卸载 软件更新 查看空间使用情况 当前目录所在的位置 查看文件中的内容 查看目录下的文件 重启 关机 移动文件 磁盘管理软件 修改权限 删除文件或文件夹 新建文件夹 移动一个文件夹 文件重命名 编译
  • CMake中define_property的使用

    CMake中的define property命令用于定义和记录自定义属性 其格式如下 define property
  • 轻量微调和推理stanford_alpca

    当前的Alpaca模型是在Self Instruct论文中使用的技术生成的52K条指令数据 从7B LLaMA模型微调而来 并进行了一些修改 A10 gpu显存 22G cu117 驱动470 103 01 absl py 1 4 0 ac
  • 图形化界面

    文章目录 一 引入图形化界面 二 关于Easyx的基本函数操作 2 1颜色配比函数 2 2EasyX的坐标 有负数区分 2 3窗口函数函数 三 关于Easyx的实际操作 代码实现 3 1颜色操作的代码实现原理 3 2坐标操作的代码实现原理