![]() |
|
|
![]()
|
|
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: 1 Всего: 1 |
Нужно 1) - на нажатие кнопки мыши сделать один обработчик, 2) - на двойное нажатие той же кнопки - другой.
Прога всегда попадает в обработчик 1). Ломал голову - ни к чему хорошему не пришел. --------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: 1 Всего: 1 |
Или все уже водку пьянствуют или это неразрешимая задача
--------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: нет Всего: 38 |
Придется выбрать что то одно
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 5 Всего: 98 |
есть два вариантоа:
самый простой: самостоятоельно реализуем в контроле функциональность двойного клика. недостаток -- время клика может не соответствовать выбранному пользователем. заморочный: в обработчике одинарного клика запускаем таймер/поток в котором ждем (например секунду) и попутно проверяем не было ли двойного клика (в соответствующем обработчике ставим соответствующий флаг). недостаток -- двойной клик может быть выставлен > 1с (маловероятно) можно еще попробовать узнать у системы время двойного клика (но это лучше в системном программировании спрашивать) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
||||
|
||||
| qqshonok |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 1.1.2007 Репутация: нет Всего: нет |
А две кнопки и поочерёдно скрывать их?
|
|||
|
||||
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: 1 Всего: 1 |
Не красиво И вообще не то что я имел в виду. Двойное нажатие мыши! Это сообщение отредактировал(а) CityAC - 3.1.2007, 11:58 --------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Чтобы приходили сообщения WM_XBUTTONDBLCLK класс окна должен иметь стиль CS_DBLCLKS. И тогда приходят и WM_XBUTTONDOWN, и WM_XBUTTONDBLCLK, причем в случае двойного нажатия придут оба. Если в обработчике WM_XBUTTONDOWN сделать что-то нехорошее (например, фокус переставить, или просто долго сидеть), DBLCLK, конечно, не придет.
Поэтому реакцию нужно продумать так, чтобы она была непротиворечивой. -------------------- ... |
|||
|
||||
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: 1 Всего: 1 |
1. Как установить данный стиль, если окно создается статически? 2. А как можно на ЛистБоксе создать обработчик типа WM_LBUTTONUP? К примеру, нужно чтобы при выборе элемента списка он выделялся не при нажатии клавиши мыши, а при отжатии? Вообще такое возможно? Среди доступных сообщений для Listbox(a) я такого не нашел 3. Как снять выделение с элемента в ListBox(e) (так чтобы вообще ни один элемент не был выделен?); Это сообщение отредактировал(а) CityAC - 11.1.2007, 15:04 --------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
1. SetClassLong(hwnd,GCL_STYLE,CS_DBLCLKS|GetClassLong(hwnd,GCL_STYLE));
2. Создать в родителе, и проверять, куда попадает точка в которую кликнули
WM_LBUTTONUP - как раз сообщение об отжатии |
|||
|
||||
| CityAC |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: 1 Всего: 1 |
3. ..?
Я пробовал, но при щелчке на листбоксе программа не попадает в обработчик родительского WM_LBUTTONUP. хотя должен по идее - в стилях листбокса выставлен Notify. Ничего не понимаю, может еще какой нюанс? Это сообщение отредактировал(а) CityAC - 11.1.2007, 15:31 --------------------
Вижу цель, не вижу припятствий. |
||||
|
|||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
3.
|
|||
|
||||
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: 1 Всего: 1 |
Цитата
Я пробовал, но при щелчке на листбоксе программа не попадает в обработчик родительского WM_LBUTTONUP. хотя должен по идее - в стилях листбокса выставлен Notify. Ничего не понимаю, может еще какой нюанс? --------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
похоже я ошибался, ситуация по-сложнее будет, видимо придется содавать класс-наследник для CListBox, а в нем уже переопределять обработчик WM_LBUTTONUP, но не буду ручаться, что это единственный вариант PS овчинка стоит выделки? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Не единственный, можно ловить сообщения в PreTranslateMessage родителя. Но вряд ли это поможет в смысле изменения поведения лист-бокса по выделению элементов. Разве что ловить также WM_LBUTTONDOWN (и проглатывать)? а на WM_LBUTTONUP устанавливать текущий элемент. Но криво как-то. -------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |