Консультация № 187929
26.10.2014, 18:59
100.51 руб.
0 0 0
Добрый вечер. Делаю очень простенькую.программку на C++ в среде Dev-C++ в системе Win XP
В программе объявил глобальную переменную bool global_var
На небольшой форме я создал две кнопки
Первая кнопка запускает процедуру с бесконечным циклом
А вторая кнопка (я бы очень хотел) прерывала бы тот самый бесконечный цикл
На VBA я бы сделал так:
Sub start_cycle()
Dim always as boolean
Do While .always
DoEvents
If global_var = false then
Exit Do
End If
End Do
End Sub
Sub Button2_Click()
Global_var = false
End Sub

КАК ПРЕРВАТЬ (НАРОЧНО СОЗДАННЫЙ БЕСКОНЕЧНЫЙ ЦИКЛ В ОДНОЙ ПРОЦЕДУРЕ) НАЖАВ ВТОРУЮ КНОПКУ ИЛИ НАЖАВ КРЕСТИК (ЗАКРЫТЬ ФОРМУ)


Приложение:
Может быть есть несложный пример подобного, который отлажен и компилируется в Dev-C++
В книжках всё как-то не то, что я ищу или очень разрозненно, какими-то кусками.
Короче ищу пример подобной простенькой программы.

switch(msg) {

case WM_CREATE:

hwndButton1 = CreateWindow(TEXT("button"), TEXT("начать цикл"), WS_VISIBLE | WS_CHILD ,
40, 80, 100, 30, hwnd, (HMENU) IDC_BUTTON1, NULL, NULL);

hwndButton2 = CreateWindow(TEXT("button"), TEXT("ПРЕКРАТИТЬ "), WS_VISIBLE | WS_CHILD ,
160, 80, 140, 30, hwnd, (HMENU) IDC_BUTTON2, NULL, NULL);

break;

case WM_COMMAND:

switch(LOWORD(wParam)) {
case IDC_BUTTON1:
{
start_cycle(global_var);
break;
}
case IDC_BUTTON2:
{
global_var = false;
// ЧТО-ТО НАДО СДЕЛАТЬ ЧТОБЫ ПРОЦЕДУРА start_cycle() ПРЕКРАТИЛА ЦИКЛ
}
} //switch(LOWORD(wParam))

break;

case WM_DESTROY:
PostQuitMessage(0);
break;

}//switch(msg)

Обсуждение

Форма ответа