在使用easyx图形库时,想做到关闭第一个窗口的同时打开第二个窗口,但是在第一个窗口关闭后,程序没有暂停,且第二个窗口并未打开。
相关代码如下:
int main() {
initgraph(300, 300);
//绘制文本
outtextxy(10, 10, L"选择窗口");
//绘制按钮
rectangle(40, 150, 90, 180);
outtextxy(50, 160, L"按钮1");
rectangle(120, 150, 170, 180);
outtextxy(130, 160, L"按钮2");
ExMessage msg;
while (1) {
msg = getmessage(EX_MOUSE);
switch (msg.message) {
case WM_LBUTTONDOWN:
if (msg.x >= 50 && msg.x <= 90 && msg.y >= 150 && msg.y <= 180) {
row = 10;
col = 10;
closegraph();
}
else if (msg.x >= 130 && msg.x <= 170 && msg.y >= 150 && msg.y <= 180) {
row = 15;
col = 15;
closegraph();
}
break;
default:
break;
}
}
map = (char**)malloc((row + 2) * sizeof(char*));
for (int i = 0; i < row + 2; i++) {
map[i] = (char*)malloc((col + 2) * sizeof(char));
}
//创建一个图形窗口
initgraph(row * SIZE, col * SIZE);
HWND hwnd = GetHWnd(); //获取窗口句柄函数
SetWindowText(hwnd, L"扫雷游戏");
//BGM
mciSendString(L"open music.mp3 alias music", 0, 0, 0);
mciSendString(L"play music repeat", 0, 0, 0);
//加载图片
loadimage(&img[0], L"0.jpg", SIZE, SIZE);
loadimage(&img[1], L"1.jpg", SIZE, SIZE);
loadimage(&img[2], L"2.jpg", SIZE, SIZE);
loadimage(&img[3], L"3.jpg", SIZE, SIZE);
loadimage(&img[4], L"4.jpg", SIZE, SIZE);
loadimage(&img[5], L"5.jpg", SIZE, SIZE);
loadimage(&img[6], L"6.jpg", SIZE, SIZE);
loadimage(&img[7], L"7.jpg", SIZE, SIZE);
loadimage(&img[8], L"8.jpg", SIZE, SIZE);
loadimage(&img[9], L"9.jpg", SIZE, SIZE);
loadimage(&img[10], L"10.jpg", SIZE, SIZE);
loadimage(&img[11], L"11.jpg", SIZE, SIZE);
GameInit();
while (1) {
DrawMap();
if (PlayGame() == -1) {
DrawMap();
MessageBox(hwnd, L"这都输了,low b", L"提示", MB_OK);
break;
}
if (row * col - NUM == count) {
DrawMap();
MessageBox(hwnd, L"恭喜你,扫雷成功,想要奖励?没有!", L"提示", MB_OK);
break;
}
}
closegraph();
return 0;
}