powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Куда может пропасть WM_LBUTTONDBLCLK ?
5 сообщений из 5, страница 1 из 1
Куда может пропасть WM_LBUTTONDBLCLK ?
    #34585000
PavelT100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть некоторая программа на VS C++.
Запускаю я ее, нажимаю два раза мышкой на окошке. Смотрю в главной очереди сообщений пришли среди прочего два сообщения
WM_LBUTTONDOWN
WM_LBUTTONDBLCLK.
Я поставил запись в лог этих сообщений. Также это можно отследить в Spy++.
Потом эти сообщения обрабатываются в соответвующих местах. Все хорошо.
После этого что-то кто-то изменил в этой программе.
Причем так, что на при тех же действиях в главной очереди сообщение WM_LBUTTONDOWN
приходит и обрабатывается, а WM_LBUTTONDBLCLK не приходит, и соответвено не обрабатывается никак. Но почему оно не приходит ?
Spy++ также не показывает WM_LBUTTONDBLCLK. Куда это собщение могло дется ? Как это можно отладить ?
...
Рейтинг: 0 / 0
Куда может пропасть WM_LBUTTONDBLCLK ?
    #34587981
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что за окошко (диалог, кнопочка, view)?

Во-первых, у окошка может быть "window class" без стиля CS_DBLCLKS, тогда оно не получает это сообщение.

Во-вторых, если речь идёт например о диалоге, а двойной щелчок происходит в пределах какого-нибудь дочернего окна, и у этого окна вставили обработчик, который не пропускает это событие дальше (родителю).

Могут быть и ещё причины, сходу не соображу.

После этого что-то кто-то изменил в этой программе.
Нет предыдущего текста программы для сравнения?
...
Рейтинг: 0 / 0
Куда может пропасть WM_LBUTTONDBLCLK ?
    #34589895
PavelT100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стиль CS_DBLCLKS я проверил - у всех окон приложения этот стиль стоит.
При более тщательном изучении прблемы я обнаружил следующее:
в новом варианте в главную очередь обработки сообщений при двойном нажатии мышки
попадают следующие собщения:
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
WM_LBUTTONUP
Все они передаются вниз соответвующим окнам и там обрабатываются, что логично (но в когда
обрабатывается WM_LBUTTONDBLCLK происходят неправильные действия, что и приводит в конечном итоге к неправильному поведению программы, но это уже совсем другая история).
А вот в старом варианте программы в главную очередь сообщений при таком же двойном нажатии мышки приходили

WM_LBUTTONDOWN и затем это сообщение предавалось дальше окнам
WM_LBUTTONUP
WM_LBUTTONDOWN
WM_LBUTTONUP
но сообщения эти вниз соответвующим окна передавались не все, а только первое из WM_LBUTTONUP. Все это из-за того, что не переключался фокус с одно комбобокса. Поведение его как раз и было изменено в новом варианте.
Но когда все же фокус с этого комбобокса терялся, при переключении, например, на другое приложение WM_LBUTTONUP передавался все-же окнам и обрабатывался там.
При этом, что самое удивительное не формируется WM_LBUTTONDBLCLK, хотя я понимаю его формирует сама операционная система, если видит два удара мышки подряд.
...
Рейтинг: 0 / 0
Куда может пропасть WM_LBUTTONDBLCLK ?
    #34589908
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
его формирует сама операционная система, если видит два удара мышки подряд
Видимо "подряд" должно быть в пределах одного и того же окна, иначе кому из них его посылать?
Явного указания на это я не нашёл.
...
Рейтинг: 0 / 0
Куда может пропасть WM_LBUTTONDBLCLK ?
    #34590133
PavelT100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ой ВэйВидимо "подряд" должно быть в пределах одного и того же окна, иначе кому из них его посылать?
Явного указания на это я не нашёл.

Ну я же нажимаю два раза мышкой и в старой и в новой программе в одно и то же место.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Куда может пропасть WM_LBUTTONDBLCLK ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]