请问这个界面为什么点击以后没反应?点击按钮不显示点击的状态,而且不弹出窗口。第一遍点击的时候还是好好地,结果之后就没有反应了
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <string.h>
#include<graphics.h>
#include<ctype.h>
#define _CRT_SECURE_NO_WARNINGS
int COUNT;
char key[20];
struct Student
{
char id[14];
char name[10];
char age[4];
char sex[4];
char date[16];
char address[20];
char phone[12];
char email[20];
};
struct Student stu[50], ss;
void menu();
int search();
int add();
int modify();
int Delete();
void writeFile();
int readFile();
void Showall();
void PrintUI();
void Printfind();
int searchid();
int R[] = { 250,80,550,130 };
int r1[] = { 300,150,500,200 };
int r2[] = { 300,220,500,270 };
int r3[] = { 300,290,500,340 };
int r4[] = { 300,360,500,410 };
int r5[] = { 300,430,500,480 };
int r6[] = { 300,500,500,550 };
int r7[] = { 300, 380, 380, 410 };
int r8[] = { 300, 380, 380, 410 };
void menu()
{
initgraph(800, 640);
setbkcolor(LIGHTRED);
ExMessage m1;
cleardevice();
setbkmode(TRANSPARENT);
loadimage(0, "C:\\Users\\HONOR\\Pictures\\Saved Pictures\\980.jfif");
setbkmode(TRANSPARENT);
setfillcolor(WHITE);
settextcolor(BLACK);
fillrectangle(R[0], R[1], R[2], R[3]);
fillrectangle(r1[0], r1[1], r1[2], r1[3]);
fillrectangle(r2[0], r2[1], r2[2], r2[3]);
fillrectangle(r3[0], r3[1], r3[2], r3[3]);
fillrectangle(r4[0], r4[1], r4[2], r4[3]);
fillrectangle(r5[0], r5[1], r5[2], r5[3]);
fillrectangle(r6[0], r6[1], r6[2], r6[3]);
fillrectangle(r7[0], r7[1], r7[2], r7[3]);
RECT R1 = { R[0],R[1],R[2],R[3] };
RECT R2 = { r1[0],r1[1],r1[2],r1[3] };
RECT R3 = { r2[0],r2[1],r2[2],r2[3] };
RECT R4 = { r3[0],r3[1],r3[2],r3[3] };
RECT R5 = { r4[0],r4[1],r4[2],r4[3] };
RECT R6 = { r5[0],r5[1],r5[2],r5[3] };
RECT R7 = { r6[0],r6[1],r6[2],r6[3] };
RECT R8 = { r7[0],r7[1],r7[2],r7[3] };
drawtext("学生信息管理系统", &R1, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext("录入", &R2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext("查询", &R3, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext("信息修改", &R4, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext("删除信息", &R5, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext("显示信息", &R6, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
drawtext("退出系统", &R7, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
int i;
int tag = 1;
int temp = readFile();
while (1)
{
m1 = getmessage();
if (m1.x > r1[0] && m1.x < r1[2] && m1.y>r1[1] && m1.y < r1[3]) {
setlinecolor(BLACK);
rectangle(r1[0], r1[1], r1[2], r1[3]);
if (m1.message == WM_LBUTTONDOWN)
{
add();
}
}
else if (m1.x >= r2[0] && m1.x <= r2[2] && m1.y >= r2[1] && m1.y <= r2[3]) {
setlinecolor(BLACK);
rectangle(r2[0], r2[1], r2[2], r2[3]);
if (m1.message == WM_LBUTTONDOWN)
{
Printfind();
}
}
else if (m1.x >= r3[0] && m1.x <= r3[2] && m1.y >= r3[1] && m1.y <= r3[3]) {
setlinecolor(BLACK);
rectangle(r3[0], r3[1], r3[2], r3[3]);
if (m1.message == WM_LBUTTONDOWN)
{
modify();
}
}
else if (m1.x >= r4[0] && m1.x <= r4[2] && m1.y >= r4[1] && m1.y <= r4[3]) {
setlinecolor(BLACK);
rectangle(r4[0], r4[1], r4[2], r4[3]);
if (m1.message == WM_LBUTTONDOWN) {
Delete();
}
}
else if (m1.x >= r5[0] && m1.x <= r5[2] && m1.y >= r5[1] && m1.y <= r5[3]) {
setlinecolor(BLACK);
rectangle(r5[0], r5[1], r5[2], r5[3]);
if (m1.message == WM_LBUTTONDOWN) {
Showall();
}
}
else if (m1.x >= r6[0] && m1.x <= r6[2] && m1.y >= r6[1] && m1.y <= r6[3]) {
setlinecolor(BLACK);
rectangle(r6[0], r6[1], r6[2], r6[3]);
if (m1.message == WM_LBUTTONDOWN) {
closegraph();
}
}
else {
setlinecolor(WHITE);
rectangle(r1[0], r1[1], r1[2], r1[3]);
rectangle(r2[0], r2[1], r2[2], r2[3]);
rectangle(r3[0], r3[1], r3[2], r3[3]);
rectangle(r4[0], r4[1], r4[2], r4[3]);
rectangle(r5[0], r5[1], r5[2], r5[3]);
rectangle(r6[0], r6[1], r6[2], r6[3]);
}
}
}
int search(char ke[]) {
int i;
for (i = 0; i < COUNT; i++)
{
if (strcmp(ke, stu[i].id)==0 || strcmp(ke, stu[i].name) == 0 || strcmp(ke, stu[i].age) == 0 || strcmp(ke, stu[i].date) == 0 || strcmp(ke, stu[i].address) == 0 || strcmp(ke, stu[i].email) == 0 || strcmp(ke, stu[i].phone) == 0 || strcmp(ke, stu[i].sex) == 0)
return i;
}
return -1;
}
int searchid(char ke[])
{
for (int i = 0; i < COUNT; i++)
{
if (strcmp(ke, stu[i].id) == 0 )
return i;
}
return -1;
}
void PrintUI(int q)
{
ExMessage m2;
initgraph(680, 480);
loadimage(0, "C:\\Users\\HONOR\\Pictures\\Saved Pictures\\980.jfif");
cleardevice();
setfillcolor(WHITE);
fillrectangle(r7[0],r7[1],r7[2],r7[3]);
RECT R8 = { r7[0],r7[1],r7[2],r7[3] };
setbkmode(TRANSPARENT);
settextcolor(BLACK);
drawtext("退出", &R8, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
settextstyle(20, 0, "黑体");
outtextxy(40, 100, "学号");
outtextxy(110, 100, "姓名");
outtextxy(190, 100, "年龄");
outtextxy(270, 100, "性别");
outtextxy(333, 100, "出生日期");
outtextxy(450, 100, "地址");
outtextxy(515, 100, "电话");
outtextxy(570, 100, "电子邮箱");
outtextxy(40, 140, stu[q].id);
outtextxy(110, 140, stu[q].name);
outtextxy(190, 140, stu[q].age);
outtextxy(270, 140, stu[q].sex);
outtextxy(333, 140,stu[q].date);
outtextxy(450, 140, stu[q].address);
outtextxy(515, 140, stu[q].phone);
outtextxy(570, 140, stu[q].email);
while (1) {
m2 = getmessage();
if (m2.x > 300 && m2.x < 430 && m2.y>380 && m2.y < 460) {
setlinecolor(RED);
rectangle(r7[0], r7[1], r7[2], r7[3]);
if (m2.message == WM_LBUTTONDOWN) {
closegraph();
menu();
}
}
}
}
void Printfind()
{
InputBox(key, 10, "请输入学生信息的关键词");
int fan1 = search(key);
if (fan1 == -1)
{
HWND hndtipsF = GetHWnd();
int isok = MessageBox(hndtipsF, "查无此人!", "提示", MB_OK);
}
else
{
PrintUI(fan1);
}
}
int add()
{
InputBox(ss.id, 14, "请输入该学生的学号");
int pos = searchid(ss.id);
if (pos == -1)
{
InputBox(ss.name, 10, "请输入该学生的姓名");
InputBox(ss.age, 4, "请输入该学生的年龄");
InputBox(ss.sex, 4, "请输入该学生的性别");
InputBox(ss.date, 16, "请输入该学生的出生日期");
InputBox(ss.address, 20, "请输入该学生的地址");
InputBox(ss.phone, 12, "请输入该学生的电话");
InputBox(ss.email, 20, "请输入该学生的电子邮箱");
stu[COUNT] = ss;
COUNT++;
FILE* fp;
int i;
fp = fopen("student.txt", "a");
fprintf(fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", ss.id, ss.name, ss.age, ss.sex, ss.date, ss.address, ss.phone, ss.email);
fclose(fp);
return 1;
}
else {
HWND hwndInput1 = GetHWnd();
int isok = MessageBox(hwndInput1, "该学生已经存在,请重新输入", "提示", MB_OK);
}
}
int modify()
{
int pos;
InputBox(ss.id, 9, "请输入待修改的学生的学号");
pos = searchid(ss.id);
if (pos == -1)
{
HWND hndtipsM = GetHWnd();
int isok = MessageBox(hndtipsM, "查无此人!", "提示", MB_OK);
}
else {
InputBox(ss.id, 9, "请输入修改后的学生的学号");
InputBox(ss.name, 9, "请输入修改后的学生的姓名");
InputBox(ss.age, 9, "请输入修改后的学生的年龄");
InputBox(ss.sex, 9, "请输入修改后的学生的性别");
InputBox(ss.date, 9, "请输入修改后的学生的出生日期");
InputBox(ss.address, 9, "请输入修改后的学生的地址");
InputBox(ss.phone, 9, "请输入修改后的学生的电话");
InputBox(ss.email, 9, "请输入修改后的学生的电子邮箱");
stu[pos] = ss;
}
FILE* fp;
int i;
fp = fopen("student.txt", "w+");
for (i = 0; i < COUNT; i++)
fprintf(fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", stu[i].id, stu[i].name, stu[i].age, stu[i].sex, stu[i].date, stu[i].address, stu[i].phone, stu[i].email);
fclose(fp);
return 1;
}
int Delete()
{
InputBox(ss.id, 14, "请输入待删除学生的学号");
int pos, i;
pos = searchid(ss.id);
if (pos == -1) {
HWND hndtipsD = GetHWnd();
int isok = MessageBox(hndtipsD, "查无此人!", "提示", MB_OK);
return -1;
}
else
{
HWND hndtipsDS = GetHWnd();
int isok = MessageBox(hndtipsDS, "确定删除?", "提示", MB_OKCANCEL);
if (isok == IDOK) {
int posi = pos + 1;
for (int j = posi; j < COUNT; j++)
stu[j-1] = stu[j];
COUNT--;
FILE* fp;
int i;
fp = fopen("student.txt", "w+");
for(i=0;i< COUNT;i++)
fprintf(fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", stu[i].id, stu[i].name, stu[i].age, stu[i].sex, stu[i].date, stu[i].address, stu[i].phone, stu[i].email);
fclose(fp);
return 1;
}
else if (isok == IDCANCEL) {
return 1;
}
}
}
int readFile()
{
FILE* fp;
int i;
fp = fopen("student.txt", "r");
if (fp == NULL)
return 0;
for (i = 0;; i++)
if (fscanf(fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", stu[i].id, stu[i].name, &stu[i].age, stu[i].sex, stu[i].date, stu[i].address, stu[i].phone, stu[i].email) != EOF) break;
fclose(fp);
return i;
}
void Showall()
{
ExMessage m3;
initgraph(640, 480);
loadimage(0, "C:\\Users\\HONOR\\Pictures\\Saved Pictures\\980.jfif");
cleardevice();
setbkmode(TRANSPARENT);
setfillcolor(WHITE);
fillrectangle(r8[0], r8[1], r8[2], r8[3]);
RECT R9 = { r8[0],r8[1],r8[2],r8[3] };
settextcolor(BLACK);
drawtext("退出", &R9, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
settextstyle(20, 0, "黑体");
outtextxy(40, 100, "学号");
outtextxy(110, 100, "姓名");
outtextxy(190, 100, "年龄");
outtextxy(270, 100, "性别");
outtextxy(333, 100, "出生日期");
outtextxy(450, 100, "地址");
outtextxy(515, 100, "电话");
outtextxy(570, 100, "邮箱");
readFile();
for (int q = 0; q < COUNT; q++) {
outtextxy(40, 140+30*q, stu[q].id);
outtextxy(110, 140 + 30 * q, stu[q].name);
outtextxy(190, 140 + 30 * q, stu[q].age);
outtextxy(270, 140 + 30 * q, stu[q].sex);
outtextxy(333, 140 + 30 * q, stu[q].date);
outtextxy(450, 140 + 30 * q, stu[q].address);
outtextxy(515, 140 + 30 * q, stu[q].phone);
outtextxy(570, 140 + 30 * q, stu[q].email);
}
while (1) {
m3 = getmessage();
if (m3.x > 300 && m3.x < 380 && m3.y>380 && m3.y < 410) {
setlinecolor(RED);
rectangle(r8[0], r8[1], r8[2], r8[3]);
if (m3.message == WM_LBUTTONDOWN) {
closegraph();
menu();
}
}
else {
setlinecolor(WHITE);
rectangle(r8[0], r8[1], r8[2], r8[3]);
}
}
}
int main(void)
{
FILE* fp;
fp = fopen("student.txt", "r");
if (fp == NULL)
return 0;
int i = 0;
COUNT = 0;
for (i = 0;; i++)
{
if (fscanf(fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", stu[i].id, stu[i].name, stu[i].age, stu[i].sex, stu[i].date, stu[i].address, stu[i].phone, stu[i].email) != EOF)
{
COUNT++;
}
else break;
}
fclose(fp);
menu();
return 0;
}