У меня есть форма заявки MFC, как показано на рисунке:
И мне было интересно, почему колесико мыши работало на поле «Базовый угол:» (для управления управлением вращением), а не на полях «Угол» и «Диапазон». Нажатие непосредственно на кнопки прокрутки работало отлично.
То же самое происходило с полями «Базовый угол» и «±» формы Nesting:
Моя гипотеза: это происходит потому, что поля находятся внутри группового ящика
Что я сделал для проверки: я изменил размеры группового поля в teo froms таким образом, чтобы нерабочие поля не перекрывали его:
Результаты: Колесико мыши начало работать на элементах управления диалогового окна «Ориентация детали». Но в диалоге Nesting он продолжал отказываться работать.
Примечания: текстовые поля являются CEdits. Они DDX с переменными CString. Ориентация детали — это модальный диалог. Вложение — это форма внутри CMFCTabControl, внутри CDialogBar, внутри CDockablePane, внутри CMainFrame (это производное от CFrameWndEx)
Теперь мои подозрения: для диалогового окна ориентации детали формы я подозреваю, что групповой блок использует событие колесика мыши. Что касается диалогового окна вложения, я подозреваю, что DockablePane использует событие колесика мыши. Или, может быть, неявная панель CTabbed, созданная макетом панелей, который я разработал; или даже мейнфрейм.
Мой вопрос: как я могу заставить колесико мыши работать с текстовыми полями, управляемыми кнопкой вращения, которые находятся внутри групповых полей? У меня есть еще много таких случаев в моих диалогах приложений.
Есть ли способ сделать так, чтобы движение колесика мыши обрабатывалось тем, кто должен это делать? Тот же вопрос относится к элементам управления формой вложения, какая область группового поля была удалена, а колесо мыши по-прежнему не заставляло вращающуюся кнопку двигаться!
Заранее спасибо, Серхио