Я пытаюсь запустить графический интерфейс для приложения C ++, но у меня проблема с событиями нажатия клавиш. В принципе, все работает нормально, пока я не нажимаю никакие кнопки (главное окно регистрирует ключевые события), но как только я нажимаю кнопку, главное окно теряет фокус и больше не фиксирует ключевые события. Это может быть глупый вопрос, но я новичок в C ++. Это часть кода, который я использую:
Создание главного окна:
hwnd = CreateWindowEx (
0, /* Extended possibilites for variation */
szClassName, /* Classname */
"Application Name", /* Title Text */
WS_OVERLAPPEDWINDOW, /* default window */
CW_USEDEFAULT, /* Windows decides the position */
CW_USEDEFAULT, /* where the window ends up on the screen */
540, /* The programs width */
250, /* and height in pixels */
HWND_DESKTOP, /* The window is a child-window to desktop */
NULL, /* No menu */
hThisInstance, /* Program Instance handler */
NULL /* No Window Creation data */
);
Создание одной из кнопок:
CreateWindow(TEXT("button"), TEXT("Start"),
WS_VISIBLE | WS_CHILD,
x, y, width, height,
hwnd, (HMENU) 6, NULL, NULL);
Я также заметил, что всякий раз, когда я нажимаю кнопку, запускается событие WM_KILLFOCUS
, поэтому я думаю, что это проблема с фокусом. Я также попытался захватить событие WM_KILLFOCUS, а затем снова установить фокус с помощью SetActiveWindow
, но это привело к сбою моей программы.
Любая помощь будет оценена по достоинству :)