Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | | | | | | | |
Пора потехоньку перебираться на Линух. 14.10.18 18:34 Число просмотров: 4609
Автор: Den <Денис Т.> Статус: The Elderman
|
|
<programming>
|
[Win32] Каким образом ListBox’ы узнают, что мышь кликнула за их пределами? 01.09.18 18:29
Автор: Vedrus <Serokhvostov Anton> Статус: Member Отредактировано 01.09.18 18:31 Количество правок: 2
|
Делаю альтернативу стандартному ListBox’у – в MS Access. Чтобы у каждого пункта ListBox’а могло быть несколько строк, и чтобы длина каждого пункта могла быть больше 256 символов. Сделал всплывающее модальное окно без границ, - выглядит как надо. Единственная проблема: не знаю как сделать, чтобы при мышином клике за пределами окна, оно закрывалось.
Коллеги, может быть знаете, каким образом это в стандартных ListBox’ах реализовано?
Мой ListBox
|
|
Wm_killfocus 02.09.18 04:05
Автор: Zef <Alloo Zef> Статус: Elderman
|
|
| |
Была идея воспользоваться Access’овской альтернативой... 02.09.18 06:09
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
Была идея воспользоваться Access’овской альтернативой WM_KILLFOCUS («потеря фокуса»), но почему-то «формы» не реагируют на событие «потеря фокуса». На них реагируют только диалоговые элементы, размещённые на форме. Когда, например на форме размещаешь два editbox’а и следишь за срабатыванием событий получения и потери фокуса – они все срабатывают.
Плюс, если на форме есть хотя бы один диалоговый элемент, который может получить фокус (те же editbox’ы), то событие «получение фокуса» самой формы – тоже не срабатывает. Я так понимаю, это прикол Access’а такой (он похоже отфильтровывает часть сообщений WM_XXX). Может у кого-то есть идеи, как несмотря на это – всё же отследить, что фокус с окна ушёл?
|
| | |
для окон можно попробовать wm_activate 02.09.18 18:21
Автор: dl <Dmitry Leonov>
|
|
| | | |
Ну так это событие срабатывает, когда форма активируется, а... 03.09.18 04:44
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
Ну так это событие срабатывает, когда форма активируется, а мне – обратное надо. Я про диалоговые элементы и формы в предыдущем посте упомянул только для демонстрации того факта, что в MS Access событие WM_KILLFOCUS плохо работает.
|
| | | | |
оно срабатывает в обе стороны 03.09.18 18:28
Автор: dl <Dmitry Leonov>
|
В wParam приходит либо признак активации, либо деактивации.
|
| | | | | |
Возникла идея – фиксировать в лог все сообщения оконные,... 17.09.18 07:01
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
Возникла идея – фиксировать в лог все сообщения оконные, которые окну приходят. Сделал это, подключившись к Access’овскому окну через сабклассинг, но сообщения с номером 0x06 (WM_ACTIVATE) так и не дождался. WM_KILLFOCUS – тоже неудовлетворительно работает. Если с текущего окна кликаешься на другое, то сообщение это приходит, а если на панель задача кликаешь, то не приходит. О том, исключительно Access’ная это особенность, или вообще обще-Windows-ная – не разбирался (из других сред сабклассингом анализ не проводил), потому как всё равно не буду в обозримом будущем с Access’а на другую платформу переходить.
Теперь другая идея возникла… И вопрос по ней. Как моё модальное окно узнаёт, что клик случился за его пределами? А оно узнаёт об этом точно, потому как начинает недовольство проявлять (пиликает и мигает, мол тыкай на меня, а не мимо)? Вот если бы отловить приход этого уведомления, и прикрутить на него процедуру закрытия, – моя проблема решилась бы.
PS. Сабклассинг в MS Access работает криво (если IDE-активна, при сабкласинге чехарда начинается – видимо IDE его тоже активно использует).
|
| | | | | | |
Spy++ погонять попробуй 03.10.18 10:59
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
| | | | | | | |
Много лет назад, помню, гонял его под WinXP, а сейчас скачиваю, и он под WinXP не работает к сожалению (до сих пор под XP сижу, и слазить не планирую). 11.10.18 06:01
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
|
| | | | | | | | | |
Пора потехоньку перебираться на Линух. 14.10.18 18:34
Автор: Den <Денис Т.> Статус: The Elderman
|
|
| | | | |
в ms access событие wm_killfocus плохо работает 03.09.18 04:49
Автор: Zef <Alloo Zef> Статус: Elderman Отредактировано 03.09.18 05:09 Количество правок: 1
|
Плохо. это - как?
Интересно. я на С писал нечто подобное - у меня подсвечивались статики, на которыые я наезжал курсором. Проблем не было.
Вообще, у меня такое впечатление, что это - какой-то глюк библиотек Вижуалстудии после "шестерки". Я часто замечаю зависание на экране "бесхозных" контекстных меню. Старые программы этим не грешат.
|
| | | | | |
Ну так я же написал чуть выше об этом - в посте, который... 03.09.18 05:53
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
> Плохо. это - как? Ну так я же написал чуть выше об этом - в посте, который начинается словами "Была идея..."
|
|
|