2021-05-13

文章目录

GUI实现

#include <graphics.h>
#include <stdio.h>

static int r1[] = { 875, 255, 1110, 310 };//"开始导航"按钮的矩形参数
int r2[] = { 875, 355, 1110, 410 };//"历史查询"按钮的矩形参数
int r3[] = { 875, 455, 1110, 510 };//"退出"按钮的矩形参数
MOUSEMSG msg;//鼠标对象
bool checkMouse(int rect[]);

int main() {
	initgraph(1280, 720);
	//窗口标题
	HWND hwnd;
	hwnd = GetHWnd();
	SetWindowText(hwnd, _T("校园导览系统V1.0"));
	//载入图片
	loadimage(NULL, _T("JPG"), _T("Homepage"), 1280, 720, true);
	//首页标题
	setbkmode(TRANSPARENT);
	settextcolor(RGB(255, 255, 255));
	LOGFONT f1;
	gettextstyle(&f1);
	f1.lfHeight = 60;
	_tcscpy_s(f1.lfFaceName, _T("思源黑体 CN Bold"));
	f1.lfQuality = ANTIALIASED_QUALITY;
	settextstyle(&f1);
	outtextxy(860, 110, _T("校园导览系统"));
	settextstyle(27, 0, _T("Gen Jyuu Gothic Bold"));
	outtextxy(865, 170, _T("Campus Navigation System"));
	//首页按钮
	RECT Button1 = { r1[0],r1[1],r1[2],r1[3] };//矩形指针
	RECT Button2 = { r2[0],r2[1],r2[2],r2[3] };
	RECT Button3 = { r3[0],r3[1],r3[2],r3[3] };
	setbkmode(TRANSPARENT);//按钮文字
	settextcolor(RGB(255, 255, 255));
	LOGFONT f;
	gettextstyle(&f);
	f.lfHeight = 40;
	_tcscpy_s(f.lfFaceName, _T("思源黑体 CN Bold"));
	f.lfQuality = ANTIALIASED_QUALITY;
	settextstyle(&f);
	drawtext(_T("开始导航"), &Button1, DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R1内输入文字,水平居中,垂直居中,单行显示
	drawtext(_T("查询历史"), &Button2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R2内输入文字,水平居中,垂直居中,单行显示
	drawtext(_T("退出"), &Button3, DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R3内输入文字,水平居中,垂直居中,单行显示
	setlinecolor(RGB(255, 255, 255));//按钮边框
	setlinestyle(PS_SOLID, 3);
	roundrect(875, 255, 1110, 310, 15, 15);
	roundrect(875, 355, 1110, 410, 15, 15);
	roundrect(875, 455, 1110, 510, 15, 15);
	//test
	if(checkMouse(r1))
	{
		cleardevice();
		setbkcolor(WHITE);
		cleardevice();
		IMAGE img1,img2;
		loadimage(&img1, _T("JPG"), _T("沙河地图"), 455, 397, true);
		putimage(820, 60, &img1);
		loadimage(&img2, _T("PNG"), _T("本部地图"), 837, 397, true);
		putimage(0,60, &img2);
	}
	
	getchar();
	closegraph();
	return 0;
}

bool checkMouse(int rect[]) {
	FlushMouseMsgBuffer();//清空鼠标消息缓冲区
	while (true) {
		while (MouseHit())
		{
			msg = GetMouseMsg();//获取鼠标消息
			if (WM_LBUTTONDOWN == msg.uMsg) {
				if (msg.x>rect[0] && msg.x<rect[2] && msg.y>rect[1] && msg.y<rect[3])
				{
					return true;
				}
			}
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值