在visaul c++里面运行,想要用鼠标操作点击对应按键位置,可以出现一个新的窗口。
但是这个代码运行后,无法用鼠标进行操作,点击后没有反应,也没有出现新窗口,求大佬修改
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
void drawHospital() {
// 绘制医院建筑轮廓
// 墙体
setfillcolor(LIGHTGRAY);
solidrectangle(250, 120, 570, 530); // 主体建筑
setfillcolor(DARKGRAY);
solidrectangle(240, 100, 580, 130); // 顶部
// 窗户
setfillcolor(WHITE);
solidrectangle(280, 240, 340, 300); // 左上窗户
solidrectangle(480, 240, 540, 300); // 右上窗户
solidrectangle(380, 240, 440, 300); // 中间窗户
solidrectangle(280, 330, 340, 390); // 左中窗户
solidrectangle(480, 330, 540, 390); // 右中窗户
solidrectangle(380, 330, 440, 390); // 中间窗户
// 门
setfillcolor(WHITE);
solidrectangle(360, 420, 460, 530); // 门框
setfillcolor(LIGHTCYAN);
solidrectangle(365, 425, 455, 530); // 主门
setfillcolor(WHITE);
solidrectangle(408, 425, 412, 530); // 门缝
// 绘制医院十字标志
setfillcolor(WHITE);
solidrectangle(280, 150, 540, 210);
setfillcolor(RED);
// 水平线
solidrectangle(385, 172, 435, 188);
// 垂直线
solidrectangle(402, 155, 418, 205);
// 一棵树
setfillcolor(BROWN);
solidrectangle(210, 390, 230, 530); // 树干
setfillcolor(LIGHTGREEN);
solidcircle(220, 425, 48); // 树冠
// 另一棵树
setfillcolor(BROWN);
solidrectangle(590, 390, 610, 530); // 树干
setfillcolor(LIGHTGREEN);
solidcircle(600, 425, 48); // 树冠
// 文字
settextcolor(BLACK);
settextstyle(20, 0, _T("Arial"));
outtextxy(380, 550, _T("医院"));
getch(); // 按键关闭窗口
}
void showZHINAN() {
cleardevice();
settextstyle(16, 0, _T("宋体"));
settextcolor(BLACK); // 设置文字颜色
setbkcolor(WHITE);
outtextxy(100, 550, _T("就医指南")); // 指定位置输出字符串
getch();
}
void showQUHAO() {
cleardevice();
settextstyle(16, 0, _T("宋体"));
settextcolor(BLACK); // 设置文字颜色
setbkcolor(WHITE);
outtextxy(100, 550, _T("签到取号")); // 指定位置输出字符串
getch();
}
void showJIANYAN() {
cleardevice();
settextstyle(16, 0, _T("宋体"));
settextcolor(BLACK); // 设置文字颜色
setbkcolor(WHITE);
outtextxy(100, 550, _T("检验查询")); // 指定位置输出字符串
getch();
}
void showGUAHAO() {
cleardevice();
settextstyle(16, 0, _T("宋体"));
settextcolor(BLACK); // 设置文字颜色
setbkcolor(WHITE);
outtextxy(100, 550, _T("预约挂号")); // 指定位置输出字符串
getch();
}
void showJIAOFEI() {
cleardevice();
settextstyle(16, 0, _T("宋体"));
settextcolor(BLACK); // 设置文字颜色
setbkcolor(WHITE);
outtextxy(100, 550, _T("医疗缴费")); // 指定位置输出字符串
getch();
}
void showPINGZHENG() {
cleardevice();
settextstyle(16, 0, _T("宋体"));
settextcolor(BLACK); // 设置文字颜色
setbkcolor(WHITE);
outtextxy(100, 550, _T("报销凭证")); // 指定位置输出字符串
getch();
}
void showMENU() {
RECT rStr0 = {310, 45, 510, 65}; // 中间
RECT rStr1 = {60, 160, 220, 180}; // 左1
RECT rStr2 = {60, 260, 220, 280}; // 左2
RECT rStr3 = {60, 360, 220, 380}; // 左3
RECT rStr4 = {600, 160, 760, 180}; // 右1
RECT rStr5 = {600, 260, 760, 280}; // 右2
RECT rStr6 = {600, 360, 760, 380}; // 右3
char str0[] = "智慧医疗终端";
char str1[] = "就医指南";
char str2[] = "签到取号";
char str3[] = "检验查询";
char str4[] = "预约挂号";
char str5[] = "医疗缴费";
char str6[] = "报销凭证";
initgraph(820, 630); // 初始化图像窗口
setbkcolor(LIGHTCYAN); // 设置当前背景色
cleardevice(); // 用当前设置的背景色清屏
setfillcolor(LIGHTGRAY); // 设置按键的填充颜色
solidroundrect(310, 35, 510, 75, 20, 20); // 中间
setfillcolor(WHITE);
solidroundrect(60, 150, 220, 190, 20, 20); // 左1
solidroundrect(60, 250, 220, 290, 20, 20); // 左2
solidroundrect(60, 350, 220, 390, 20, 20); // 左3
solidroundrect(600, 150, 760, 190, 20, 20); // 右1
solidroundrect(600, 250, 760, 290, 20, 20); // 右2
solidroundrect(600, 350, 760, 390, 20, 20); // 右3
// 太阳
setfillcolor(YELLOW);
fillcircle(5, 5, 55);
// 草地
setfillcolor(GREEN);
solidrectangle(0, 500, 820, 630); // 简单草地
settextcolor(BLACK); // 设置按键文字颜色
setbkcolor(WHITE);
settextstyle(20, 0, _T("宋体")); // 设置字体大小
drawtext(str0, &rStr0, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext(str1, &rStr1, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext(str2, &rStr2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext(str3, &rStr3, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext(str4, &rStr4, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext(str5, &rStr5, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext(str6, &rStr6, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawHospital();
}
int main() {
initgraph(820, 630); // 初始化图形窗口
setbkcolor(LIGHTCYAN); // 设置背景色
cleardevice(); // 清屏
while (true) {
showMENU();
MOUSEMSG msg = GetMouseMsg(); // 获取鼠标消息
if (msg.uMsg == WM_LBUTTONDOWN) { // 判断是否为左键点击
int x = msg.x;
int y = msg.y;
// 判断点击的菜单选项
if (x >= 60 && x <= 220) {
if (y >= 150 && y <= 190) {
showZHINAN(); // 就医指南
} else if (y >= 250 && y <= 290) {
showQUHAO(); // 签到取号
} else if (y >= 350 && y <= 390) {
showJIANYAN(); // 检验查询
}
} else if (x >= 600 && x <= 760) {
if (y >= 150 && y <= 190) {
showGUAHAO(); // 预约挂号
} else if (y >= 250 && y <= 290) {
showJIAOFEI(); // 医疗缴费
} else if (y >= 350 && y <= 390) {
showPINGZHENG(); // 报销凭证
} else if (y >= 410 && y <= 460) {
break; // 退出
}
}
}
// 点击返回按钮退出
if (MouseHit()) {
GetMouseMsg();
}
}
closegraph(); // 关闭图形窗口
return 0;
}