我正在学校和我自己学习C ++编程。现在我正在尝试对视觉体验和用户界面进行一些升级。我的问题是,只需单击MessageBox的“NO”按钮即可关闭程序。程序运行后,我想跳过“按任意键继续”。这是代码: `
#include<iostream>
#include<windows.h>
#include<stdlib.h>
using namespace std;
int main()
{
MessageBox ( NULL, "7. Adott az a(i), i=1,n szamsor. Hozzuk létre a b szamsort", "Feladat szovege", MB_OK);
float a[111], b[111], n;
cout<<"n= ?\b";
MessageBox ( HWND_DESKTOP, "Kerlek irj be egy szamot, hogy hany ertek van a sorozatban!", "10_tombok/07", MB_OK);
cin>>n;
cout<<"\n";
for(int i=1; i<=n; i++)
{
cout<<"a"<<i<<"= ?\b";
cin>>a[i];
}
for(int i=1; i<=n; i++)
{
if (a[i]>=0)
{
b[i]=2*a[i];
}
else
{
b[i]=-a[i]/2;
}
}
cout<<"\nA 'b' szamsor: ";
for(int i=1; i<=n; i++)
{
if (i!=n)
cout<<b[i]<<", ";
else
cout<<b[i]<<"\n";
}
int mbID= MessageBox (NULL, "Szeretned ujra futtatni a programot?", "Program end", MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2);
switch (mbID)
{
case IDYES:
{
return main();
break;
}
case IDNO:
{
//here i need something
return 0;
break;
}
}
`
答案 0 :(得分:1)
要解决这个问题,如果从Visual Studio中运行,您将获得“按任意键继续”。提示。尝试直接运行可执行文件。
对于评论中的问题,请使用循环。至少这样的事情:
int main()
{
int done = 0;
while(!done)
{
// skipping all the other program code above...
switch (mbID)
{
case IDYES:
break;
case IDNO:
done = 1;
break;
}
}
return 0;
}
从C ++程序中调用main()
实际上是未定义的行为。
如果您对Windows UI编程非常感兴趣,请查看一些Win32或MFC教程。它与构建控制台应用程序略有不同。