Пишу простейший калькулятор с помощью WinApi, когда происходит деление на 0 нужно вывести MessageBox с ошибкой. Но в калькуляторе есть функция auto-reresh, которая мгновенно считает результат без нажатия кнопки OK. Когда в режиме auto-refresh ввожу второй раз символ появляется окошко MessageBox(появляется бесконечный цикл) и потом не могу ввести символ. Как это можно исправить?(visual studio 2015)
int a = 0;
int b = 1;
int x = 0;
//////////
static BOOL OnCommand(WPARAM wParam, HWND hwnd)
{
auto controlID = LOWORD(wParam);
auto notification = HIWORD(wParam);
switch (controlID)
{
case IDC_NUMBER1:
switch (notification)
{
case EN_CHANGE:
a = GetDlgItemInt(hwnd, IDC_NUMBER1, &fError, fRelative);
return IfClicked(hwnd);
}
break;
case IDC_NUMBER2:
switch (notification)
{
case EN_CHANGE:
b = GetDlgItemInt(hwnd, IDC_NUMBER2, &fError, fRelative);
return IfClicked(hwnd);
}
}
//////////
static BOOL ProcessTestRadioButton(int a, int b, HWND hwnd)
{
auto checkState = SendMessageW(GetControl(IDC_ARITHMETIC), BM_GETCHECK, 0, 0);
if (checkState == BST_CHECKED)
{
ArithmeticCalculating(a, b, hwnd);
}
else
{
ComparativeCalculating(a, b, hwnd);
}
return TRUE;
}
//////////////
static BOOL ArithmeticCalculating(int a, int b, HWND hwnd)
{
auto testComboBox = GetControl(IDC_COMBO);
int selectedIndex = SendMessageW(testComboBox, CB_GETCURSEL, 0, 0);
switch (selectedIndex)
{
case 0:
x = a - b;
break;
case 1:
x = a * b;
break;
case 2:
if (b == 0)
{
MessageBoxW(_hDialog, L"Error!", L"The Message", MB_OK | MB_ICONSTOP);
return TRUE;
}
x = a / b;
break;
case 3:
x = a + b;
break;
}
SetDlgItemInt(hwnd, IDC_ANSWER, x, TRUE);
return TRUE;
}
Здесь не весь код. Заранее спасибо
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть последовательность различных int чиселНеобходимо эффективно найти любое int число, отличающееся от данных
Работаю в MSVC, набираю #include <experimental/ >, в выпадающем списке нет anyКак мне подключить этот хедер?
У меня есть числоКак получить тип, который может хранить это число, умноженное на 2, если число имеет не "максимальный" тип? Например, число...