|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.09.2022, 11:30 | #1 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Работа с объектами управления Windows!
ЗДРАВСТВУЙТЕ! Снова возникли трудности следующего характера, имеется вот такая сверхзадача)
Задача6.png По клику мышки кнопка с надписью "Клавиши отжаты" исчезает, кнопка с надписью "Клавиша нажата" появляется, но исчезать не хочет оно и понятно окно не получает сообщения WM_LBUTTONUP/WM_RBUTTONUP, а как сделать так, чтобы кнопка отреагировала, я не знаю. Собственно, чисто интуитивно я понимаю, что в блоке WM_COMMAND нужно обработать аналог WM_LBUTTONUP/WM_RBUTTONUP, но как..., я ведь не кликаю по кнопке, а наоборот отпускаю клавишу мыши, что-то в голову ничего не приходит. да и со всеми сообщениями, оповещениями объектов управления Windows не могу до конца разобраться... Объекты управления имеют свои классы, значит у них имеются свои функции т.е. если я посылаю сообщение Код:
Вот код: Код:
|
13.09.2022, 11:43 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
См. TrackMouseEvents
|
13.09.2022, 13:18 | #3 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Как и в прошлый раз, та же самая функция, как оказалось можно было решить куда элегантнее. Я таких функций не изучал, в том материале, который я прошёл на данный момент её точно нет. Уверен, что есть куда более простое решение.
Я на данный момент решил так: Код:
|
13.09.2022, 13:55 | #4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
А что вам не нравится в TrackMouseEvent. После вызова этой функции вы просто продолжите получать сообщения от мыши даже когда курсор будет вне окна или над другим окном. Пока вы в очередной раз не вызовете эту функцию, чтобы отменить получение сообщений от мыши вне рамок клиентской области окна.
Используя эту функцию вам достаточно вызвать ее в обработчике нажатия клавиши мыши основного окна и вызвать ее для отмены в обработчике отпускания клавиши мыши основного окна. И эти же обработчике сможете использовать для нужных действий с кнопками. Хотя вы используете SetCapture и ReleaseCapture, а они в свою очередь ссылаются на TrackMouseEvent. Последний раз редактировалось macomics; 13.09.2022 в 13:57. |
14.09.2022, 05:21 | #5 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Да, я об этом знаю, а хотелось бы что-либо увидеть с сообщениями мыши и кнопки, пример бы, на тему взаимодействия сообщений кнопки и мыши, если такое возможно.
Я написал, что не нравится выше. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с COM объектами в UAPP Windows 10 | baikal | C# (си шарп) | 0 | 07.11.2015 06:14 |
Прошу помочь - передача управления между объектами внутри формы | IgorSHV | Microsoft Office Excel | 3 | 22.10.2015 19:12 |
Рaбота з объектами ядра Windows. | andriy1992p | Win Api | 10 | 03.09.2011 22:28 |
работа с объектами управления форм (кнопки) | kursant95 | Microsoft Office Excel | 3 | 28.01.2011 14:17 |
Работа с объектами Windows | c0zak | Помощь студентам | 6 | 06.11.2009 14:05 |