Я создаю простую программу win32 с использованием C++, хотя я думаю, что я использую c только в этом приложении. Мне нужно определить, какая кнопка HWND была нажата в приложении. Я искал ссылку msdn, и он только сказал мне, что HIWORD - это код уведомления, а LOWORD - это идентификатор для сообщения BN_CLICKED. Мне удалось определить, когда нажата кнопка, но она применима только для всех кнопок. Все мои кнопки создаются в сообщении WM_CREATE. Это то, что я сумел расшевелить до сих пор:winapi BN_CLICKED, как определить, какая кнопка была нажата?
case: WM_CREATE:
HWND hPlus = CreateWindowEx(0, L"BUTTON", L"+", WS_CHILD | WS_VISIBLE, 130, 240, 35, 30, hwnd, (HMENU)IDC_MENU, GetModuleHandle(NULL), NULL);
HWND hEquals = CreateWindowEx(0, L"BUTTON", L"=", WS_CHILD | WS_VISIBLE, 170, 205, 65, 65, hwnd, (HMENU)IDC_MENU, GetModuleHandle(NULL), NULL);
break;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case BN_CLICKED:
MessageBox(hwnd, L"OK", "OK", MB_OK);
break;
}
break;
Я попытался сравнивающие hEquals к LOWORD (wParam'а,), но это дало мне ошибку при компиляции. Я думаю, что я также пытался сравнить его с HIWORD и LOWORD от lParam, которые также не собирались. Теперь я не знаю, что делать дальше.
Рад, что помог. Почему вы не приняли один из двух ответов? – manuell
Привет Винс. Я снова здесь, потому что кто-то просто поддержал мой ответ. Почему вы не принимаете ответ? Просто любопытно. – manuell
Я очень занят. Я очень плохо отношусь к ответам ха-ха. Я так легко отвлекаюсь и даже не могу вспомнить, для чего это был проект. – Vince