项目制作-3

news2025/3/12 19:36:06

今天是好日子呀解决了

文件的问题(未测试)

完成了更多的界面的设计

对基本的模块有了更多的完成度

又学习了easyx图形库的一些的应用

一起来看看吧

void menu() {
	initgraph(640, 800, 0);
	IMAGE img;
	loadimage(&img, "C:\\Users\\唐怡佳\\Desktop\\图1.jpg", 640, 800);
	
	while(1){
	BeginBatchDraw();
	putimage(0, 0, &img);
	setfillcolor(YELLOW);
	char a[20] = "地图全貌";
	char b[20] = "查询路线";
	char c[20] = "公告板";
	char d[20] = "管理入口";
	char e[10] = "退出";
	settextstyle(50, 0, "楷书");
	setbkmode(TRANSPARENT);
	settextcolor(BLACK);
	fillrectangle(120, 150, 520, 250);
	int x1 = 120 + (400 - textwidth(a)) / 2;
	int y1 = 150 + (100 - textheight(a)) / 2;
	outtextxy(x1, y1, a);
	fillrectangle(120, 300, 520, 400);
	int x2 = 120 + (400 - textwidth(b)) / 2;
	int y2 = 300 + (100 - textheight(b)) / 2;
	outtextxy(x2, y2, b);
	fillrectangle(120, 450, 520, 550);
	int x3 = 120 + (400 - textwidth(c)) / 2;
	int y3 = 450 + (100 - textheight(c)) / 2;
	outtextxy(x3, y3, c);
	fillrectangle(120, 600, 520, 700);
	int x4 = 120 + (400 - textwidth(d)) / 2;
	int y4 = 600 + (100 - textheight(d)) / 2;
	outtextxy(x4, y4, d);
	fillrectangle(340, 700, 640, 800);
	int x5 = 340 + (300 - textwidth(e)) / 2;
	int y5 = 700 + (100 - textheight(e)) / 2;
	outtextxy(x5, y5, e);
	FlushBatchDraw();
	MOUSEMSG msg;
	

		if (MouseHit()) {
			msg = GetMouseMsg();
			if (msg.uMsg == WM_LBUTTONDOWN) {
				if (msg.x >= 120 && msg.x <= 520 && msg.y >= 150 && msg.y <= 250) {};

				if (msg.x >= 120 && msg.x <= 520 && msg.y >= 300 && msg.y <= 400) {};

				if (msg.x >= 120 && msg.x <= 520 && msg.y >= 450 && msg.y <= 550) {};

				if (msg.x >= 120 && msg.x <= 520 && msg.y >= 600 && msg.y <= 700) {
					char p[50];
					InputBox(p, 50, "请输入密码");
					if (strcmp(p, password) == 0)
						mastermenu();
					else {
						HWND hwnd = GetHWnd();
						SetWindowText(hwnd, "提示");
						int i = MessageBox(hwnd, "密码错误", "提示", MB_OK);
					}
				};
				if (msg.x >= 340 && msg.x <= 640 && msg.y >= 700 && msg.y <= 800) {
					tuichu();
				};
			}
		}
	}

}

//菜单(未完成)

把昨天做的界面放到了,项目里面,由于有界面的切换,我搞了一个双缓冲的 

BeginBatchDraw();

以及结束的

FlushBatchDraw();

是关于缓存区的函数,我暂时还不明白

InputBox(p, 50, "请输入密码");
					if (strcmp(p, password) == 0)
						mastermenu();
					else {
						HWND hwnd = GetHWnd();
						SetWindowText(hwnd, "提示");
						int i = MessageBox(hwnd, "密码错误", "提示", MB_OK);
					}

intputbox是输入框,用字符串变量接收就可以,对密码进行一个判断了

HWND hwnd = GetHWnd();//申请窗口的句柄

SetWindowText(hwnd, "提示");//给窗口一个标题

MessageBox(hwnd, "密码错误", "提示", MB_OK);//窗口的信息,以及模式

这是一个只可以点确定的弹出窗口

MOUSEMSG msg;//申请一个鼠标的变量
	

		if (MouseHit()) {//判断是否有鼠标点击
			msg = GetMouseMsg();//捕获这个点击信息给msg
			if (msg.uMsg == WM_LBUTTONDOWN) {//判断是否是鼠标的左键

我本来用的新版的,但是老是出文题就用老板的了 

msg.x和msg.y是当前的鼠标信息点击的像素的位置

我还完成了,管理员的界面

void mastermenu() {
	IMAGE img1;
	loadimage(&img1, "C:\\Users\\唐怡佳\\Desktop\\图2.jpg", 640, 800);
	while (1) {
	BeginBatchDraw();
	
	putimage(0, 0, &img1);
	char a[20] = "公告版的管理";
	char b[20] = "景区景点的录入";
	char c[20] = "景区景点的删除";
	char d[20] = "管理员密码的修改";
	char e[10] = "退出";
	settextstyle(50, 0, "行书");
	setbkmode(TRANSPARENT);
	settextcolor(BLACK);
	fillrectangle(120, 150, 520, 250);
	int x1 = 120 + (400 - textwidth(a)) / 2;
	int y1 = 150 + (100 - textheight(a)) / 2;
	outtextxy(x1, y1, a);
	fillrectangle(120, 300, 520, 400);
	int x2 = 120 + (400 - textwidth(b)) / 2;
	int y2 = 300 + (100 - textheight(b)) / 2;
	outtextxy(x2, y2, b);
	fillrectangle(120, 450, 520, 550);
	int x3 = 120 + (400 - textwidth(c)) / 2;
	int y3 = 450 + (100 - textheight(c)) / 2;
	outtextxy(x3, y3, c);
	fillrectangle(120, 600, 520, 700);
	int x4 = 120 + (400 - textwidth(d)) / 2;
	int y4 = 600 + (100 - textheight(d)) / 2;
	outtextxy(x4, y4, d);
	fillrectangle(340, 700, 640, 800);
	int x5 = 340 + (300 - textwidth(e)) / 2;
	int y5 = 700 + (100 - textheight(e)) / 2;
	outtextxy(x5, y5, e);
	FlushBatchDraw();
	MOUSEMSG msg;
		if (MouseHit()) {
			msg = GetMouseMsg();
			if (msg.uMsg == WM_LBUTTONDOWN) {
				if (msg.x >= 120 && msg.x <= 520 && msg.y >= 150 && msg.y <= 250) {};

				if (msg.x >= 120 && msg.x <= 520 && msg.y >= 300 && msg.y <= 400) {
					putdata();
				};
				if (msg.x >= 120 && msg.x <= 520 && msg.y >= 450 && msg.y <= 550) {
					deldata();
				};

				if (msg.x >= 120 && msg.x <= 520 && msg.y >= 600 && msg.y <= 700) {
					char p[50];
					char v[50];
					InputBox(p, 50, "请输入修改的密码");
					InputBox(v, 50, "请在次输入密码");
					if (strcmp(p, v) == 0) {
						strcpy_s(p, password);
						HWND hwnd = GetHWnd();
						SetWindowText(hwnd, "提示");
						int i = MessageBox(hwnd, "修改成功", "提示", MB_OK);
					}
					else {
						HWND hwnd = GetHWnd();
						SetWindowText(hwnd, "提示");
						int i = MessageBox(hwnd, "两次输入的密码不一样", "提示", MB_OK);
					}
					
				};
				if (msg.x >= 340 && msg.x <= 640 && msg.y >= 700 && msg.y <= 800) {
					HWND hwnd = GetHWnd();
					SetWindowText(hwnd, "退出");
					int i = MessageBox(hwnd, "是否返回到主菜单", "提示", MB_OKCANCEL);
					if (i == 1) {
						return;
					}
		
				};
			}
		}
	}
}

全部的功能还未完全的实现

我对删除以及,录入有了新的想法

也许我们不用一开始就在文件上面操作

我们可以设置一个函数,在程序结束的时候,来执行这个函数,也许他们习惯用左上的x来关闭窗口但是我也许可以设置特殊的界面x键不可以点

这是管理员的界面 

 有了菜单还是有了更多的方向了,接下来的时间我会把图中的功能一一的实现

今天撒花谢幕了 拜拜!!!!

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433253.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sql实践-01

CREATE DATABASE 人员管控; SHOW DATABASES; use 人员管控; 创建表 CREATE TABLE 住宿人员 ( 身份证号 CHAR(18) NOT NULL PRIMARY KEY, 姓名 VARCHAR(10) NOT NULL, 性别 CHAR(1) NOT NULL, 出生日期 DATE, 户籍 VARCHAR(30), 文化程度 VARCHAR(10), 婚姻状况 CHAR(…

装上这个插件,你就能一键生成接口文档

当有接口对接需求的时候&#xff0c;开发终于不用再担心 API 文档难写了&#xff0c;也不用再一个个接口文档重新写&#xff01;安装这个 IDEA 插件&#xff0c;可以一步将文档导入到 Postcat。 这款插件操作简单&#xff0c;容易上手&#xff0c;能够让开发者省去API文档编写的…

TypeError: Cannot handle this data type: (1, 1, 33980), |u1

Image.fromarray报错解决 1. 报错信息2. 解决 相关文章 Image.fromarray()详细用法 1. 报错信息 TypeError: Cannot handle this data type: (1, 1, 33980), |u1 2. 解决 报错原因 图片mode格式问题moasic是灰度图片得到的【mode为L】,numpy【值只有0&#xff0c;和255】且…

shell编程入门 第一章 基本语法

shell编程的语法主要分为五个环节&#xff0c;分别是变量&#xff0c;字符串&#xff0c;运算符&#xff0c;流程控制&#xff0c;函数五大部分 shell编程的基础语法 一 变量1.1 shell变量名1.2 使用shell变量1.3只读变量1.4 删除变量 二 字符串2.1 定义时最好用双引号2.2获取字…

EMC 电路设计基础

EMC 在 JIS 中被定义为“电磁兼容性”&#xff0c;意为“不对其他设备产生电磁干扰&#xff0c;即使受到来自其他设备的电磁干扰&#xff0c;仍能保持原有的性能”&#xff0c;也就是具备相互兼顾兼容的性质。 EMC 大致分为 EMI&#xff08;电磁干扰&#xff09;和 EMS&#x…

Chinese-LangChain:基于ChatGLM-6b+langchain实现本地化知识库检索与智能答案生成

Chinese-LangChain Chinese-LangChain&#xff1a;中文langchain项目&#xff0c;基于ChatGLM-6blangchain实现本地化知识库检索与智能答案生成 https://github.com/yanqiangmiffy/Chinese-LangChain 俗称&#xff1a;小必应&#xff0c;Q.Talk&#xff0c;强聊&#xff0c;Qi…

python中的logging模块:从入门到高阶

简单使用 在 Python 中&#xff0c;可以使用内置的 logging 模块来记录应用程序的信息。最简单的用法是使用 basicConfig() 函数配置 logging 模块&#xff0c;然后使用 getLogger() 方法创建一个 Logger 对象&#xff0c;用于记录信息。下面是一个简单的例子&#xff1a; im…

基于html+css的图片展示16

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

No.043<软考>《(高项)备考大全》【第26章】软件工程国家标准

【第26章】软件工程国家标准 1 章节相关1.1 考试相关 2 标准2.1 标准级别及目录 3 软件工程术语4 软件生存周期过程、活动和任务4.1 必背4.2 ★软件生命周期各阶段与软件文档编制工作的关系--熟悉.4.3 各类人员与软件文档的使用关系--熟悉 5 文档控制5.1 SRS需求规格说明书 6 软…

一年一度的PMO大会将于2023年6月在京召开

企业要基业长青就必须持续保持组织活力。企业的内外部环境不会一成不变&#xff0c;顺应变化及时调整变革避免组织出现僵化低效才能在激烈的市场竞争中存活下来。PMO从成立到逐渐发挥越来越强的作用本身即是一种组织变革的过程&#xff0c;从这个意义上来说PMO因组织变革而生&a…

Nginx Rewrite

常用的Nginx正则表达式 ^&#xff1a;匹配输入字符串的起始位置 $ : 匹配输入字符串的结束位置 * : 匹配前面的字符零次或多次 &#xff1a;匹配前面的字符一次或多次 ?: 匹配前面的字符零次或一次 . : 匹配除“\n”之外的任何单个字符 ^$ : 空行 \&#xff1a;将后面…

百度发布Apollo城市智驾,距离AI智能驾驶还有多远?

推荐&#xff1a;将NSDT场景编辑器加入你的3D工具链。 工具集&#xff1a;NSDT简石数字孪生 随着人工智能技术的不断发展&#xff0c;智能驾驶已经成为了汽车行业的一个重要领域。智能驾驶可以减少人为驾驶的错误和疲劳驾驶等不安全因素&#xff0c;提高驾驶安全性&#xff0c…

内蒙农信携手星环科技建设农信大数据平台,激活金融业务创新

背景 内蒙古自治区农村信用社联合社&#xff08;简称“内蒙农信”&#xff09;经过多年的信息化建设&#xff0c;目前投产使用的信息化系统近100套&#xff0c;产生了大量的数据。该社于2019年采用MPP架构的分布式数据库&#xff0c;实现了40多套业务系统数据的归集、标准化处理…

1007、1009:与进制问题、输出问题

1007 题目&#xff1a;本题要求计算A/B&#xff0c;其中A是不超过1000位的正整数&#xff0c;B是1位正整数。你需要输出商数Q和余数R&#xff0c;使得A B * Q R成立 思路&#xff1a;对于数字元素拆分&#xff0c;除法的计算方法用代码实现&#xff08;唯一一点就是在输出的…

如何一招搞定PCB阻焊过孔问题?

PCB阻焊油墨根据固化方式&#xff0c;阻焊油墨有感光显影型的油墨&#xff0c;有热固化的热固油墨&#xff0c;还有UV光固化的UV油墨。而根据板材分类&#xff0c;又有PCB硬板阻焊油墨&#xff0c;FPC软板阻焊油墨&#xff0c;还有铝基板阻焊油墨&#xff0c;铝基板油墨也可以用…

Elasticsearch:使用 Elastic APM 监控 Android 应用程序(二)

在我之前的文章 “Elasticsearch&#xff1a;使用 Elastic APM 监控 Android 应用程序&#xff08;一&#xff09;” 中&#xff0c;我详述了如何使用 Elastic APM 来监控 Android 应用程序。在今天的文章中&#xff0c;我来详述如何部署 Elastic Stack&#xff0c;并使用文章中…

《港联证券》新三板股票交易规则是什么?如何进行交易?

新三板分为根底层、创新层和精选层。新三板股票设置了一些规则&#xff0c;既约束了一些新三板挂牌公司的股权进入生意市场&#xff0c;一起也约束了一些投资者进行投资&#xff0c;保证了新三板市场的安全。那么新三板股票生意规则是什么&#xff1f;怎么进行生意&#xff1f;…

【PMP】项目各阶段分别运用什么工具与技术汇总

做项目管理是一条漫漫长路&#xff0c;所有的本事&#xff0c;都是靠一个个项目&#xff0c;一点点积累而来的&#xff0c;并不存在“迅速上手”的方法论。一名普通项目经理的成长&#xff0c;都要经过一定时间的修炼。 数据收集 头脑风暴 在短时间内获得大量创意&#xff0…

「ML 实践篇」模型训练

在训练不同机器学习算法模型时&#xff0c;遇到的各类训练算法大多对用户都是一个黑匣子&#xff0c;而理解它们实际怎么工作&#xff0c;对用户是很有帮助的&#xff1b; 快速定位到合适的模型与正确的训练算法&#xff0c;找到一套适当的超参数等&#xff1b;更高效的执行错…

SSM--mybatis逆向工程生成

SSM学习笔记–mybatis逆向工程生成 文章目录SSM学习笔记--mybatis逆向工程生成1. 创建数据库和表2. Mybatis Generator 逆向工程1. 创建数据库和表 -- 创建 furns_ssm DROP DATABASE IF EXISTS furn_ssm; CREATE DATABASE furn_ssm; USE furn_ssm;-- 创建家居表 CREATE TABLE …