![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Qwe2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 23.3.2008 Репутация: нет Всего: нет |
Создал TreeView с чекбоксами и заполнил его. Хочу по нажатию на чекбокс устанавливать галки в дочерних чекбоксах или если клик был по дочернему - то уставливать родительский (если все смежные установлены). Почти как 3 состояния, только проще. С помощью сабклассинга сделал и на клик мышки и на пробел перехват событий. С пробелом все отлично работает, а клик ведет себя не понятно: не после каждого клика вызывается моя функция анализа галок в WM_LBUTTONUP.
|
|||
|
||||
GremlinProg |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
если в классе стоит CS_DBLCLKS, то двойной клик пошлет только один WM_LBUTTONDOWN, следующим, после WM_LBUTTONUP будет уже WM_LBUTTONDBLCLK добавь перед 76 строкой:
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
Qwe2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 23.3.2008 Репутация: нет Всего: нет |
Спасибо, заработало! Но заметил еще одну особенность: если мышкой щелкнуть по чекбоксу и не отпуская кнопки переместить в сторону и отпустить кнопку - чекбокс переключается, а WM_LBUTTONUP не срабатывает (т.к. не вызываеются все теже функции корретировки).
|
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
тогда "захватывай" мышь на WM_LBUTTONDOWN и отпускай на WM_LBUTTONUP, p.s.: см. темы с SetCapture -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Qwe2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 23.3.2008 Репутация: нет Всего: нет |
Попробовал - не получилось (результат тот же):
Это сообщение отредактировал(а) Qwe2 - 20.3.2012, 16:42 |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
а может он тот же не потому что не вызываются функции корректировки, а потому что на WM_LBUTTONUP стоит условие:
? -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Qwe2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 23.3.2008 Репутация: нет Всего: нет |
Передалал по аналогии с описанным здесь (MSDN). Работает.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |