如何用C的easyX图形库制作图形化界面菜单(财务管理系统)

用Devc++与easyx一步一步做游戏[启动界面部分]-之按钮制作 用Devc++与easyx一起做游戏,按钮绘制,按钮封装,按钮与鼠标响应,图形闪烁问题。 阅读详情

这是财务管理系统的一个图形化界面主菜单 ;

在这里插入图片描述
在这里插入图片描述

下面这个是查询功能的一个子菜单;

在这里插入图片描述


一:

菜单的实现靠的是easyX,它是针对C++的一个图形库,编译器用的是Visual C。其实VC和easyX图形库就很容易上手制作一个鼠标点击的类图形化界面。

二:

下面是代码:
// 仅仅是展示 菜单的代码  一些功能性函数就清空了
#include <stdio.h>
#include <graphics.h>
//  因为防止报错
void addOut(){};
void changeOut(){};
void delOut(){};


void addIn(){};
void changeIn(){};
void delIn(){};
void showIn(){};

void showRest(){}; 
void cleanOut(){};
void cleanIn(){}; 
//  下面是主菜单的第三个查询功能后的子菜单代码
void showOut(){
		abcd :;  //这里使用了 goto : 是为了每次执行了功能后返回到第一步重新打印子菜单 也可以用更好的逻辑实现循环 而不用goto函数
	MOUSEMSG m;//定义鼠标变量 m
	//菜单
	initgraph(800,600); //定义画布大小也就是黑框大小
	setbkcolor(WHITE);//设置背景颜色
	cleardevice();//刷新一次 略等于那个system(cls)
	setfillcolor(LIGHTBLUE); //设置后面用函数画出方框的背景颜色 这里设置成了浅蓝色
	//     (左上角)x1 y1 (右下角)x2 y2
	fillrectangle(200,140,600,160);
	fillrectangle(200,200,600,220);
	fillrectangle(200,260,600,280);
	fillrectangle(200,320,600,340);
	fillrectangle(200,380,600,400);
	fillrectangle(200,440,600,460);
	settextstyle(15,0,"楷体");//设置文字大小 格式 
	setbkmode(TRANSPARENT);// 去掉文字背景
	//下面是输出字体 参数:(起始位置x 起始位置y “带输出的字符串”)
	outtextxy(250,142,"查询某一年的总支出");
	outtextxy(250,202,"查询某年某月的总支出");
	outtextxy(250,262,"查询某年某月某日的支出");
	outtextxy(250,322,"根据关键字查询支出情况");
	outtextxy(250,382,"列出所有支出情况");
	outtextxy(250,442,"返回主菜单");
//进入触发条件的循环
	while(1){
	//
		
	//
		m = GetMouseMsg();
		if(m.x>=200 && m.x<= 600 && m.y >=140&& m.y<=160){//检测鼠标的位置 是否满足条件
			setlinecolor(RED);//满足后 设置新的边框为红色
			rectangle(190,135,610,165);//画新的边框
			//如果点击了 年份
			if(m.uMsg==WM_LBUTTONDOWN){
				//yearOut();//响应功能
				goto abcd;//功能实现后 跳转到 最开头
			}
		}else if(m.x>=200 && m.x<= 600 && m.y >=200&& m.y<=220){
			setlinecolor(RED);
			rectangle(190,195,610,225);
			//如果点击了月
			if(m.uMsg==WM_LBUTTONDOWN){
			//	monthOut();
				goto abcd;
			}
		}else if(m.x>=200 && m.x<= 600 && m.y >=260&& m.y<=280){
			setlinecolor(RED);
			rectangle(190,255,610,285);
			//点击了日
			if(m.uMsg==WM_LBUTTONDOWN){
			//	dayOut();
				goto abcd;
			}
		}else if(m.x>=200 && m.x<= 600 && m.y >=320&& m.y<=340){
			setlinecolor(RED);
			rectangle(190,315,610,345);
			//点击了关键字
			if(m.uMsg==WM_LBUTTONDOWN){
			//	memOut();
				goto abcd;
			}
		}
		//
		else if(m.x>=200 && m.x<= 600 && m.y >=380&& m.y<=400){//
			setlinecolor(RED);
			rectangle(190,375,610,405);
			//点击了列出所有
			if(m.uMsg==WM_LBUTTONDOWN){
			//	show();
				goto abcd;
			}
		}else if(m.x>=200 && m.x<= 600 && m.y >=440&& m.y<=460){//
			setlinecolor(RED);
			rectangle(190,435,610,465);
			//点击了返回
			if(m.uMsg==WM_LBUTTONDOWN){
				goto abcde;
			}
		}
		//一旦鼠标不在相应位置 将画出白色边框 覆盖之前的红色边框
		else {
			setlinecolor(WHITE);
			rectangle(190,135,610,165);
			rectangle(190,195,610,225);
			rectangle(190,255,610,285);
			rectangle(190,315,610,345);
			rectangle(190,375,610,405);
			rectangle(190,435,610,465);
		}
	}
	abcde:;//点击退出按钮 就跳转到这里退出子菜单 返回主菜单
}

//下面是主菜单的实现 实现的细节和子菜单的类似 
void drawMenu(){
	abcd :;
	MOUSEMSG m;
	//菜单
		initgraph(800,600);
		setbkcolor(WHITE);
		cleardevice();//刷新一次 略等于那个system(cls)
		setfillcolor(LIGHTBLUE);
		//           左边1 高1 左边2 高2
		fillrectangle(300,10,500,30);
		fillrectangle(300,50,500,70);
		fillrectangle(300,90,500,110);
		fillrectangle(300,130,500,150);
		
		fillrectangle(300,200,500,220);
		fillrectangle(300,240,500,260);
		fillrectangle(300,280,500,300);
		fillrectangle(300,320,500,340);
	
		fillrectangle(300,390,500,410);
		fillrectangle(300,430,500,450);
		fillrectangle(300,470,500,490);	
	
		settextstyle(15,0,"楷体");//设置文字格式
		setbkmode(TRANSPARENT);// 去掉文字背景
	
		outtextxy(370,15,"添加支出");
		outtextxy(370,55,"删除支出");
		outtextxy(370,95,"查询支出");
		outtextxy(370,135,"修改支出");


		outtextxy(370,205,"添加收入");
		outtextxy(370,245,"删除收入");
		outtextxy(370,280,"查询收入");
		outtextxy(370,320,"修改收入");

		outtextxy(380,395,"结算");
		outtextxy(355,433,"清空支出信息");
		outtextxy(355,472,"清空收入信息");

		settextcolor(BLACK);
			settextstyle(45,0,"楷体");
		outtextxy(120,530,"家庭财务管理系统V1.0(三组)");

	while(1){
		//
		
		//
		m = GetMouseMsg();
		if(m.x>=300 && m.x<= 500 && m.y >=10&& m.y<=30){
			setlinecolor(RED);
			rectangle(295,5,505,35);
			//如果点击了添加
			if(m.uMsg==WM_LBUTTONDOWN){
				addOut();
				goto abcd;
			}
		}
		 else if(m.x>=300 && m.x<= 500 && m.y >=50&& m.y<=70){
			setlinecolor(RED);
			rectangle(295,45,505,75);
			//如果点击了删除
			if(m.uMsg==WM_LBUTTONDOWN){
				delOut();
				goto abcd;
			}
		}else if(m.x>=300 && m.x<= 500 && m.y >=90&& m.y<=110){
			setlinecolor(RED);
			rectangle(295,85,505,115);
			//点击了查询
			if(m.uMsg==WM_LBUTTONDOWN){
				showOut();
				goto abcd;
			}
		}else if(m.x>=300 && m.x<= 500 && m.y >=130&& m.y<=150){
			setlinecolor(RED);
			rectangle(295,125,505,155);
			//点击了修改
			if(m.uMsg==WM_LBUTTONDOWN){
				changeOut();
				goto abcd;
			}
		}
		//
		else if(m.x>=300 && m.x<= 500 && m.y >=200&& m.y<=220){//
			setlinecolor(RED);
			rectangle(295,195,505,225);
			//点击了添加In
			if(m.uMsg==WM_LBUTTONDOWN){
				addIn();
				goto abcd;
			}
		}else if(m.x>=300 && m.x<= 500 && m.y >=240&& m.y<=260){//
			setlinecolor(RED);
			rectangle(295,235,505,265);
			//点击了删除In
			if(m.uMsg==WM_LBUTTONDOWN){
				delIn();
				goto abcd;
			}
		}else if(m.x>=300 && m.x<= 500 && m.y >=280&& m.y<=300){
			setlinecolor(RED);
			rectangle(295,275,505,305);
				//点击了查询In
			if(m.uMsg==WM_LBUTTONDOWN){
				showIn();
				goto abcd;
			}
		}else if(m.x>=300 && m.x<= 500 && m.y >=320&& m.y<=340){
			setlinecolor(RED);
			rectangle(295,315,505,345);
				//点击了修改In
			if(m.uMsg==WM_LBUTTONDOWN){
				changeIn();
				goto abcd;
			}

		}else if(m.x>=300 && m.x<= 500 && m.y >=390&& m.y<=410){
			setlinecolor(RED);
			rectangle(295,385,505,415);
				//点击了结算
			if(m.uMsg==WM_LBUTTONDOWN){
				showRest();
				goto abcd;
			}
		}else if(m.x>=300 && m.x<= 500 && m.y >=430&& m.y<=450){
			setlinecolor(RED);
			rectangle(295,425,505,455);
				//点击了清空Out
			if(m.uMsg==WM_LBUTTONDOWN){
				cleanOut();
				goto abcd;
			}
		}else if(m.x>=300 && m.x<= 500 && m.y >=470&& m.y<=490){
			setlinecolor(RED);
			rectangle(295,465,505,495);
				//点击了清空In
			if(m.uMsg==WM_LBUTTONDOWN){
				cleanIn();
				goto abcd;
			}
		}
		

		else {
			setlinecolor(WHITE);
			rectangle(295,5,505,35);
			rectangle(295,45,505,75);
			rectangle(295,85,505,115);
			rectangle(295,125,505,155);

			rectangle(295,235,505,265);
			rectangle(295,275,505,305);
			rectangle(295,315,505,345);
			rectangle(295,195,505,225);
	
			rectangle(295,385,505,415);
			rectangle(295,425,505,455);
			rectangle(295,465,505,495);
		}
	}
	getchar();
	closegraph();
}
这里是主函数! 仅仅调用了主菜单的函数。
int main(){
	drawMenu();
}

可视化图形界面编程(Easyx联合c++的通讯录系统) 于是我就尝试着下载这款app来进行编程,但是在下载的过程中,我又遇到了各种各样的问题——首先是在版本的选择上QT的版本五花八门,各个版本又都有不一样的地方,我当时好像就选了最新的版本,但是在安装的过程中,需要选择搭载什么样的环境,几十个选项让我无从下手,在网上查询安装过程又发现网上的那个安装页面与我下载的版本又不一样了,折腾了好久,最后,我就一顿乱操作还是把他安装下来了,紧跟着,我打开QT,想试着编写一个程序,但是它的各种一大串的英文定义方式让我感受特别的不舒服。前面的搭建基本界面应用下来还是没有问题的。 阅读详情

相关推荐

easyx写登入界面_如何用C的easyX图形库制做图形化界面菜单(财务管理系统)

// 仅仅是展现 菜单的代码 一些功能性函数就清空了#include #include // 由于防止报错void addOut(){};void changeOut(){};void delOut(){};void addIn(){};void changeIn(){};void delIn(){};void showIn(){};void showRest(){};void cleanOu...

weixin_31495827的博客 3963

【精选】适合初学者小游戏,Easyx图形库运用,跳转页面,窗口句柄简单应用,C语言

【精选】适合初学者小游戏,Easyx图形库运用,跳转页面,窗口句柄简单应用,C语言

VLOKL的博客 3677

EasyX按键和下拉框手动实现,兼容性问题

图形界面

qq_42692132的博客 906

开发图形登录菜单

EasyX小结

m0_65635427的博客 1558

easyx输出文字_如何用easyx做图形界面编程

如何用easyx做图形界面编程创建一个图形窗口(与平时的黑窗口不同哦)贴背景图片循环显示界面游戏控制首先创建一个图形窗口:initgraph(640,480);//初始化一个大小为640*480的窗口然后让我们给黑窗口加上背景图片:IMAGEimg;//注意:要把图片放到项目文件下的images中loadimage(&img,"./images/bk.png");putim...

weixin_42131439的博客 4965

easyx开发软件的图形界面设计的简单思路

本次作品是一个基于 EasyX 图形库设计的简单用户界面。EasyX 是一个为 C/C++ 语言提供的图形库,使得开发者能够轻松地创建窗口、图形和图像。这个作品旨在展示如何使用 EasyX 创建一个基本的图形界面。这个作品展示了如何使用 EasyX 创建一个简单但功能齐全的图形界面。通过这个示例,开发者可以进一步探索 EasyX 提供的其他功能,如绘制图形、处理鼠标和键盘事件等,从而创建更复杂的用户界面。

weixin_56334307的博客 560

前端学习(2266)vue造轮子之parcel

index.html <!doctype html> <html lang="zh-Hans"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"&g...

歌谣的博客 454

C语言利用EasyX实现图形化界面的小游戏

C语言利用EasyX实现图形化界面的小游戏,可实操性很强,干货满满,学完C语言不知道干啥,可以写着玩一下

C/C++图形库EasyX快速上手指南【1】——绘图窗口和基本图形文字绘制

适合初学C/C++代码操练和项目实战的图形界面编程介绍,让初学者不用深入学习Turbo C, OpenGL等绘图算法或图形学语言也能快速上手,制作出属于自己的编程作品~

qq_67611811的博客 2万+

从ORCAP-1589警告看Cadence ORCAD的DRC设置:如何避免‘网络别名’引发的潜在短路风险

本文深入解析Cadence ORCAD中ORCAP-1589警告的深层含义,探讨网络别名可能引发的短路风险及DRC设置优化方案。通过分析网络别名的设计意图、DRC规则配置及最佳实践,帮助工程师有效规避设计风险,提升电路设计的可靠性和规范性。

weixin_34194829的博客 297

运算放大器多谐振荡器设计实战:从施密特触发器到波形生成

本文详细介绍了运算放大器在多谐振荡器设计中的实战应用,涵盖施密特触发器的迟滞比较原理、非稳态振荡器的自激机制以及单稳态和双稳态电路的设计技巧。通过具体案例和参数计算,帮助工程师掌握波形生成与信号处理的核心技术,提升电路设计效率与稳定性。

pz89012345的博客 217

基于easyx和C++实现的鼠标交互界面(点击按钮)| 系统设计

【代码】基于easyx和C++实现的鼠标交互界面(点击按钮)| 让课设更高级。

m0_72909732的博客 3047

遗传算法解整数规划IntCon

x = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon) IntCon就是代表整数的参量,描述的是哪几个自变量是0-1整数变量。比如navrs设置有4个变量,设置IntCon为[2 3],代表第2和第3个变量是整数。 再比如设置IntCon=2:2:nvars,代表偶数项的变量是整数。 值得注意的是一旦设置了非空的IntCon,则Aeqandbeqmust be an empty entry ([]), andnonlconmust re...

jianti9962的博客 9220

精心打造:使用easyx做界面时,想要鼠标到一个按键时背景颜色发生改变

easyx的按钮知识你知道吗

m0_73747975的博客 2090

别再只当代码阅读器了!手把手教你用Understand的实体定位器和信息浏览器,5分钟精准定位代码逻辑

本文深入解析Understand代码分析工具的高级功能,重点介绍实体定位器和信息浏览器的实战应用。通过5分钟快速定位代码逻辑的技巧,帮助开发者从代码阅读者升级为逻辑侦探,提升大型代码库的分析效率。文章包含过滤搜索、调用链追踪等实用方法,是掌握Understand核心功能的必备指南。

weixin_28745821的博客 292

VS Code + Codex 在 WSL 中使用的正确姿势

Codex 登录只能在本地完成。文件仍可通过 UNC 路径访问 WSL → 本地 Codex 就能照常工作。避免在 WSL 内重复安装/登录 Codex 扩展。

yangguangwuyue的博客 9822

c语言和easyx实现可视化界面

适合学习C语言的同学进行练习的一个不错的项目

2203_75850613的博客 1707

电源防反接保护电路全攻略实战A04

本文深入剖析了硬件设计中电源保护电路的关键技术与实战经验。文章指出,保护电路虽小但至关重要,通过对比分析二极管与MOSFET防反接方案,揭示了MOSFET在效率、温控方面的优势。针对过压保护,重点讲解了TVS二极管选型要点,强调钳位电压而非击穿电压才是保护核心。文章结合工业案例(如48V通信模块烧毁、5V系统MOSFET过热等),详细阐述了PCB布局规范、热设计路径等工程细节,并提供了USB接口ESD防护的完整选型方案。最后强调硬件设计必须考虑最坏工况,在成本与性能间找到平衡点,避免因小失大。

启芯硬件的博客 776

C语言编写Easyx图形库的简单界面设计辅助工具

最近在学习Easyx的使用 在使用图形库Easyx设计界面时常常因为坐标参数的设置而烦恼,少量图形还可以反复调试,而面对大量对象必然耗费大量时间。 于是我就在想能不能设计一个程序可以将图形坐标可视化地反映并输出。 程序功能大致如下: 1,输入画布的宽和高并创建相应窗口 2,连续单击鼠标左键画布上两个坐标,并以这两点为顶点作矩形,输出矩形的坐标参数。 3,单机鼠标中键,在画布上标记点并输出点的坐标 ( 由于我的创作需求,我只做了矩形和点的部分。我把源代码放在下面,大家可以按需求自行添加。) 效果大致如图所示:

qq_52741821的博客 1081

XDMA原理学习(1)——DMA技术详解

DMA 技术是Direct Memory Access的缩写,其意思是“存储器直接访问”。它是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。DMA是所有现代计算机的重要特色,它允许不同速度的硬件设备进行沟通,而不需要依于中央处理器的大量中断负载。否则,中央处理器需要从来源把每一片段的数据复制到寄存器,然后把它们再次写回到新的地方。在这个时间里,中央处理器就无法执行其它的任务。

apple_53311083的博客 8379

PNETLab 镜像包官方下载太慢?不急,最新版本PNET_4.2.10分享!

你好,这里是网络技术联盟站,我是瑞哥。PNETLab是一个强大的网络仿真工具平台,全称Packet Network Emulator Tool Lab。它不仅允许用户进行深入的网络实验,还支持社区成员之间的实验室共享。PNETLab致力于为学习者、教师以及网络工程师提供一个全面的实验环境,以便于他们能够在实际部署前测试和验证网络配置和协议。和。这两个部分相辅相成,共同构成了一个全面且灵活的网络仿真生态系统。

网络技术联盟站 4468

easyx图形界面操作总结(课程设计)

easyx图形界面课程设计部分操作总结

向上的咸鱼blueblue的博客 2116

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VS2019使用EasyX实现简单图形界面功能

@C语言爱好者 VS使用EasyX图形工具实现"无码高清"图片 代码小白使用EasyX实现简单的自定义图片,话不多说直接上图; 以下是实现源码: #include<graphics.h>//必备的图形库头文件 int main(){ initgraph(640,480);//初始化窗口 setbkcolor(RGB(64, 128, 128));//设置背景填充 cleardevice();//清空屏幕内容 setlinecolor(RGB(255, 0, 0));//设置线的颜色 setl

qq_43562398的博客 5375

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

EasyX入门和介绍

//EasyX入门和介绍 //画实心圆 #include &lt;graphics.h&gt; //引用EasyX图形库 #include &lt;conio.h&gt; int main() { initgraph(640,480); //初始画布 setcolor(YELLOW); //圆的线条为黄色 setfillcolor(GREEN); //填充色为绿色 ...

ljz2015301785的博客 7964

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

easy-x图形库的一个简单设计(c++)

以上是效果图 采用了easy-x的图形界面库 主要代码如下 : #include #include <graphics.h> using namespace std; int main(){ initgraph(640,480); setbkcolor(RGB(64,128,128)); cleardevice(); setlinecolor(RED); setlinestyle(PS_SOLID,10); circle(320,240,200); settextcolor(RGB(255,.

qingshanlvshui9的博客 777

蛮力法的应用------凸包问题(easy-x图形化)

演示截图: //蛮力法求凸包问题 #include<iostream> #include<vector> #include<algorithm> #include<conio.h> #include<map> #include<graphics.h> using namespace std; const int maxn ...

小` pi孩 629
上一篇: scanf( “ %d\n ”,&a )scanf中%d后跟有\n时出现的问题
下一篇: java中的字符串连接符'+'
wang__Ray
博客等级 码龄8年 59粉丝 17原创
评论 20
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值