У меня есть управление, подклассическое от CDialogBar, оно имеет несколько кнопок (например, на панели инструментов). Когда я поймаю WM_LBUTTONDOWN в классе CDialogBar, это простой способ узнать, была ли нажата кнопка мыши на одной из кнопок, находящихся на элементе управления?Узнайте, где была нажата мышь на CDialogBar
0
A
ответ
1
CDialogBar
класс обычно содержит обычные элементы управления в окне, поэтому при нажатии кнопки в это окно управления отправляется сообщение WM_LBUTTONDOWN
, а не класс диалогового окна. Поэтому, если вы хотите перехватить эти сообщения (если это действительно так), вам нужно либо подклассировать окна, либо обработать их сообщения, либо установить крючок сообщения.
Вы также можете использовать инструмент Spy++
, чтобы узнать, какие сообщения эффективно добираются до вашего CDialogBar
интересующего вас объекта, чтобы увидеть, может ли обработка их быть решением вашей проблемы.
Смежные вопросы
- 1. Как определить, где мышь, где бы она ни была нажата
- 2. Лучший способ получить цвет, где была нажата мышь в AS3
- 3. Узнайте координаты, в которые была нажата ячейка
- 4. Как определить, где была нажата мышь (X & Y) в представлении?
- 5. проверить, была ли нажата мышь в NSTableView
- 6. Python Проверьте, была ли нажата мышь
- 7. Проверка того, что мышь не была нажата в MovieClip
- 8. Узнайте, что посмотреть внутри была нажата в обычае ListFragment
- 9. Слушайте выведенное мышь событие на компоненте, на котором мышь не была нажата в Swing
- 10. Возврат к листу, где кнопка была нажата
- 11. Позиционирование Dropdown Где кнопка была нажата
- 12. Как выбрать listviewitem, где была нажата кнопка
- 13. Знайте, была ли нажата мышь без прослушивателя, или другой подход
- 14. проверка, если мышь была нажата в определенной области
- 15. Каков правильный способ расчета точки зрения, что мышь была нажата
- 16. Расположите ручку, где она была нажата на трек-панель
- 17. Нахождение точки на панели прогресса, где была нажата поверхность.
- 18. JAVA - Получить мышь, когда мышь нажата
- 19. Java Game - Мышь нажата и мышь перетащили
- 20. Узнайте, когда была изменена дата
- 21. Получить ручку окна, на которую была нажата кнопка мыши
- 22. Мышь нажата триггер для управления
- 23. Java: проверьте, нажата ли мышь
- 24. Как определить, нажата ли мышь
- 25. Сделать JLabel в том месте, где была последняя мышь?
- 26. Как распознать ячейку таблицы, которая была нажата?
- 27. Узнайте, где потребляется память
- 28. Определите, на что была нажата предыдущая страница
- 29. Проверка, была ли нажата кнопка на панели
- 30. , на который была нажата кнопка JLabel?
Да, я подклассом из CDialogBar, им я поймаю WM_LBUTTONDOWN, но я хочу, чтобы другое поведение при нажатии на кнопку, находящуюся на элементе управления. – Hate
Если вы подклассифицируете элементы управления (чтобы быть ясным - нет самой панели диалога), вы могут определенно переопределить их поведение, когда вы получаете сообщения в свой «WndProc», и он в ваших силах либо пересылать сообщения, либо обрабатывать их самостоятельно. Здесь даже не имеет большого значения, что кнопки размещаются в диалоговом окне - важно то, что путем подкласса вы перехватываете обработку сообщений. –
Да, я знаю, что смогу, и я это сделаю. Вы не понимаете вопроса, это из-за моего плохого английского :(Я действительно поймаю событие WM_LBUTTONDOWN и обрабатываю его. Я переопределил PreTranslateMessage. Вопрос в том, как я могу, если пользователь нажал на одну из кнопок, находящихся в элементе управления , или просто на поверхности элемента управления. На самом деле я хочу переслать это сообщение в CDialogBar :: PreTranslateMessage, если пользователь нажал на кнопки и выполнил мой единственный мой код без стандартного, если он нажал не на кнопку, а только на элементе управления поверхность – Hate