![]() |
|
|
![]()
|
|
| GGoga |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 1.5.2007 Где: Харьков Репутация: нет Всего: нет |
Здравствуйте, уважаемые господа программисты!!!
Хочу проконсультироваться и найти свою ошибку. Я программно создаю элемент типа CMyListView, который я унаследовал от CListView с флагами:
После чего создаю обработчик для завершения редактирования:
Только вот когда я вывожу информацию в таблицу и щелкаю левой кнопкой мыши на какой-нибудь ячейке, то доступной для редактирования стает всегда ячейка из первой колонки выбранной строки. А мне нужно, чтобы становилась доступной та ячейка, на которую я непосредственно щелкнул мышкой. Подскажите, можно ли так сделать, если можно то как? Заранее, СПАСИБО! |
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Не все так просто
Вот. Редактируй. Тренируйся. Добавлено @ 15:10 И еще-СОВЕТУЮ НАСТОЯТЕЛЬНО пользоваться поиском. Тема не раз обсуждалась. Уже и раскрашивали и вставляли и редактировали все что угодно. Причем давно Это сообщение отредактировал(а) Coocky - 27.6.2007, 15:10 Присоединённый файл ( Кол-во скачиваний: 13 )
31.zip 29,11 Kb-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| GGoga |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 1.5.2007 Где: Харьков Репутация: нет Всего: нет |
Спасибо Вам!!! Вы меня просто таки выручаете!!! Конечно, со Студией разобраться тяжеловато. Тем более, если в кратчайшие сроки нужно реализовать поставленное задание. Привык уже к Билдеру, поэтому и идеология немного другая у меня, подход немного не тот, ну в принципе "...ничего нет невозможного... даже зайца можно научить курить..." - главное желание и терпение! |
|||
|
||||
| GGoga |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 1.5.2007 Где: Харьков Репутация: нет Всего: нет |
Можно еще задать такой вопрос. Я вот разобрался с Вашим примером, написал свой обработчик, только когда я щелкаю левой кнопкой миши на редактируемом поле у меня появляется поле для редактирования и автоматически пропадает строка из первой колонки редактируемой строки.
Я не брал из примера функцию DrawItem, поскольку мне не надо раскрашивать элементы, а вот пример по началу и окончанию редактирования мне очень помог. Но вот почему пропадает первый элемент, мне не понятно??? Хотя после окончания редактирования он появляется??? Парадокс какой-то. Вот мой код, может Вы найдете в нем ошибку?
Откуда такой глюк, я не пойму, может здесь что-то не то написано? Заранее СПАСИБО!!! |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Поскольку это трюк, призванный обмануть бедный доверчивый Виндоус, который стандартно обещал редактировать только первую колонку, то удивляться разным косякам не приходится. Попробуй принудительно восстанавливать текст в первой колонке, если редактируешь не ее, на BeginEditLabel.
-------------------- ... |
|||
|
||||
| GGoga |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 1.5.2007 Где: Харьков Репутация: нет Всего: нет |
Да пробовал, только не получается :( В этом событие восстановление данных ячейки как-то не реализуется, пробовал восстанавливать на нажатие кнопок мыши - тоже не получается, наверное что-то другое надо сделать... Только вот что??? Вот в этом то и проблема... |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
||||
|
||||
| GGoga |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 1.5.2007 Где: Харьков Репутация: нет Всего: нет |
Да, именно не хочеться искать примеры и думать!!! Если бы мне было в лом что-то делать и разбираться, я бы не сидел на форумах и не перечитывал различные книжки! А что касается примеров, то как, например можно разобраться в куске кода, который написал другой чел и нету комментариев? Погрузиться в его размышления и логику? Для меня, как человека, начавшего разбираться с программированием в Студие месяц назад - это тяжело и знакомых программеров нету, с кем можно было бы посоветоваться, вот и приходиться спрашивать на форумах... Я не знаю, может быть Вы гений (не хочу Вас обидеть, если что, то извините) и как только сели писать программы, то уже в голове перебирали машинные коды, то я так не могу (просто туповат я немного А не получается конкретно на обработчике событий OnBeginLabelEdit восстановить значение первой ячейки, причем если я загоняю ее содержимое в экземпляр CString и вывожу в сообщении на экран, то все нормально, а если пытаюсь записать в ячейку, то все равно безрезультатно, она остается пустой... Пробовал и на двойном щелчке мыши восстанавливать (редактирование ячейки именно на двойной щелчек в моем проекте) - не получается, а где еще можно это сделать или как я не знаю... |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
GGoga, ну может я немного резковато выразился, просто когда человек говорит "у меня не получается", не показывая никаких наработок в виде кода, создается ощущение, что сам он ничего и не пытался сделать. Когда человек делает, то у него появляются конкретные вопросы типа:
Так что не получается? |
|||
|
||||
| GGoga |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 1.5.2007 Где: Харьков Репутация: нет Всего: нет |
Да, я, наверное, тоже по тупому вопрос задал В общем проблемка следующая: я в проекте создаю объект CListView в виде таблицы, куда потом записываю разную информацию, которую в дальнейшем требуется отредактировать. Так вот, когда я начинаю редактировать (данное событие происходит при двойном щелчке левой кнопки мыши на ячейке таблицы) ячейку (особенно если она эта ячейка не из первого столбца строки), то значение (текст) в ячейке первого столбца данной строки исчезает и появляется по окончанию редактирования. Вот значит код реализации:
Это моя реализация. Я пробовал так, как посоветовал(а) мне сделать Earnest в начале редактирования (OnBeginLabelEdit) и добавил следующий код (выделен жирным):
И получилось следующее: сообщение на экран с содержимым первой ячейки выводится, но только не прописывается в ячейке, а прописывается только при завершении редактирования :( Код принудительной установки значения (текста) в ячейке (выделен в последнем коде жирным) я вставлял и на двойной щелчек левой кнопкой мыши на ячейке и на событие завершения редактирования - безрезультатно... :( Что нужно для этого исправить в коде я не знаю :( и поэтому прошу помощи у опытных программистов, может кто-то с такой проблемой сталкивался. Может я не там (не в том обработчике) прописываю принудительное установление значения или что-то в коде у меня не правильно, я не знаю... Буду рад любому совету или подсказке! Заранее ОГРОМНОЕ СПАСИБО В следующем сообщении приведу скрин-шоты с примером корявой работы приложения... Добавлено через 4 минуты и 57 секунд Вот скрин-шоты: Это сообщение отредактировал(а) GGoga - 28.6.2007, 15:57 Присоединённый файл ( Кол-во скачиваний: 3 )
Screen_1.rar 34,90 Kb |
||||||||
|
|||||||||
| GGoga |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 1.5.2007 Где: Харьков Репутация: нет Всего: нет |
||||
|
||||
| GGoga |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 1.5.2007 Где: Харьков Репутация: нет Всего: нет |
Проблему решил, использовал исходники класса CFListCtrl (). Написал его умный чел - Денис Солоненков, за что ему ОГРОМНОЕ СПАСИБО!!!
Вот здесь все описано: http://rsdn.ru/article/files/Classes/cflist2.xml А вот и сам демонстрационный проект: Присоединённый файл ( Кол-во скачиваний: 6 )
cflist2_source.zip 43,05 Kb |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |