![]() |
|
|
![]()
|
|
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Всем привет!
Есть List Control в виде таблицы (Report). В нём 4 колонки. В первой колонке необходимо реализовать отработку клика левой кнопкой мыши, как это сделать? Т.е. на ней надо кликнуть мышкой и в ней должен поменяться текст. Вернее я не могу понять какой Event выбрать, добавила все где Click или Change, но в отладчике на тчку останова внутри процедур не попадаю. Студия 7-я от 2002г. Нашла вот такой пример:
но я не могу найти в свойствах, вернее в Event событие OnFltItemChanged . Как сделать? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Лови уведомление NM_CLICK:
ON_NOTIFY (IDC_LIST, NM_CLICK, OnClick). В качестве pNMHDR приходит информация о кликнутом итеме (см. MSDN), но можно и просто HitTest вызвать. -------------------- ... |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Earnest, спасибо, сейчас попробую
|
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Пробую - не получается
ON_NOTIFY (IDC_LIST, NM_CLICK, OnClick)." У List Control я не нахожу OnClik, при добавлении Event на NM_Click формируется процедура: OnNMClickList(NMHDR *pNMHDR, LRESULT *pResult) но на точке останова там опять не останавливается |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Сделала вот так:
Теперь на точку останова попадает, всё замечательно меняется, но только в первой строке |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
вот вариант, который наконец то заработал как надо, может кому пригодится:
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Aline, не надо увлекаться визардами. Все уведомления добавляются одинаково, ровно как я написала: метод
void OnTramPamPam(NMHDR* pNMHDR,LRESULT* pResult) + в карту сообщений ON_NOTIFY (IDC_LIST, NM_TRAMPAMPAM, OnTramPamPam). Имена функции, естественно, произвольные, главное - сигнатуру соблюдать. Так как ты сделала, тоже можно, но несколько громоздко. Подумай, что будет с кодом, если нужно обрабатывать несколько уведомлений. -------------------- ... |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Earnest, я визардами не увлекалась. Я не знаю, что это было, но в 2005 студии я спокойно добавила обработчик для NM_CLICK и он ловил клик мыши на ListControl, а вот в 2002 студии это почему то не работало. Пришлось идти этим путем. Вы мне можете объяснить почему работает в одном месте и не работает в другом? Хотя действия одни и те же....
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Значет, не одни. Ты код сравнивала? Вот если код один и тот же, тогда вопрос. Впрочем, 2002 студию я пропустила (по слухам, она весьма глючная), а на 2003 все нормально.
-------------------- ... |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Сравнивала я всё. 2003-й нету, а проект был сделан в 2002, поэтому и дорабатывать надо было в ней. И не я одна не могла понять почему не работает. Так что это вопрос.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Зачем работать в глючной студии, когда есть более стабильные варианты. Из мазохизма, что ли.
Но если очень хочется, то можно и разобраться. Скажем, код сгенерирован (написан) один и тот же и он правильный. Но в 2002 в обработчик не приходит управление. Так? Тогда ищем в MFC метод OnNotify или пишем свой (просто вызывая стандартный - так проще для отладки) и ковыряемся там - чего это уведомление не диспетчеризируется? Может, в MFC 2002 глюки? Ну и т.д. Хотя я бы просто взяла нормальную среду. -------------------- ... |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Earnest, послушайте, я не хочу рабираться, без обид. Это был разовый проект, при том не мой. По каким то соображениям он был сделан именно в этой студии. Проблема была решена. Вопрос помечен как решенный. Давайте закроем эту тему? Если решите, что она здесь не нужна, как модератор можете её удалить, я не обижусь.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Да нет проблем, ты спрашиваешь - я отвечаю. Ты написала "Так что это вопрос". Я поняла так, что нужно разбираться. Нет, и слава богу.
-------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |