Задать вопрос
@art_gara55555

Не работает кнопка сервис. как исправить?

case WM_COMMAND: {
        if (HIWORD(wParam) == BN_CLICKED) {
            int buttonId = LOWORD(wParam);
            HWND hButton = (HWND)lParam;
            wchar_t buffer[256];
            double moneyToAdd = 0.0;
           
            switch (buttonId) {
                // ... (другие кнопки)
              case BUTTON_ID_SERVICE:
                   if(currentState != AppState::ServiceMode) {
                     ShowProductInfoDialog(hwnd, hInstance, products);
                    UpdateInfoLabel(hwnd, L"Сервисный режим");
                     currentState = AppState::ServiceMode;
                    }
                     break;
                // ... (другие кнопки)
            }
        }
        if (LOWORD(wParam) == BUTTON_ID_CLOSE_SERVICE)
            {
              currentState = AppState::WaitingForMoney;
             }
        return 0;
    }
  • Вопрос задан
  • 61 просмотр
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
break; в коде все портит. Выполняется первая проверка, не срабатывает, наверно, потому что currentState не тот. А может, потому что у вас там еще break между уловными проверками расставлены. До проверки на BUTTON_ID_CLOSE_SERVICE код никогда не доходит.

Break должен быть один раз в конце case блока, чтобы управление не перешло на следующий case. Switch же просто переносит управление на соответствующий case и все. Он не отключает как-то куски кода в других альтернативах.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы