В настоящее время я разрабатываю DLL пользовательского интерфейса, который использует API WIN32. DLL должна работать на нескольких платформах, XP, WIN CE и т. Д. Мне удалось включить стыковку, привязку и т. Д., Но, похоже, проблема с кнопками владельца. Я могу нарисовать правильное состояние кнопки, фокус, щелчок, значение по умолчанию. Однако я не могу получить ключевые уведомления. Я специально хочу выполнить операцию щелчка на кнопке, которая в настоящее время имеет фокус, если пользователь нажимает кнопку ввода.Сообщения клавиатуры от дочерних элементов управления
Обратите внимание, что я использую цикл сообщений Windows, а не цикл сообщений диалога. Я использую крючки окон, чтобы подключиться к созданию окна, и установить пользовательские данные, чтобы «указать» на мой экземпляр управления. Если я тестирую WM_KEYDOWN в основном контуре сообщения, я могу получить дескриптор экземпляра элемента управления кнопкой и передать сообщение соответствующему элементу управления. К сожалению, я имею дело с большим количеством устаревшего кода, и это может быть не идеальное решение.
Итак, мой вопрос - это лучший способ продвижения вперед. Подклассифицирует процедуру окна управления кнопками жизнеспособный вариант или есть более простой способ?
Большое спасибо заранее.
Если окно имеет фокус, оно должно получать ввод ключа, без необходимости настраиваемого цикла. Вы исследовали с помощью Spyxx? –
Я согласен, но я предполагаю, что управление кнопкой имеет дело с нажатиями клавиш внутри. Мне нужно в основном убедиться, что если кнопка имеет фокус, и пользователь нажимает клавишу ввода, которую вызывается обработчиком OnClick. –
Если вы используете существующий класс управления, не можете ли вы просто подклассифицировать окно proc для перехвата ваших сообщений? –