Я изучаю программирование на C ++ в школе и в одиночку. Сейчас я пытаюсь сделать некоторые улучшения визуального интерфейса и пользовательского интерфейса. Мой вопрос заключается в том, могу ли я закрыть программу после простого нажатия кнопки «Нет» в MessageBox. Я хочу пропустить «Нажмите любую клавишу, чтобы продолжить» после запуска программы. Вот код:
`
#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;
}
}
`
Чтобы ответить на этот вопрос, при запуске из 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;
}
Это на самом деле неопределенное поведение, чтобы вызвать main()
из вашей C ++ программы.
Если вы действительно заинтересованы в программировании пользовательского интерфейса Windows, взгляните на некоторые учебники по Win32 или MFC. Это немного отличается от построения консольных приложений.
Других решений пока нет …