![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Блин, у меня интернет на 4 дня вырубили.
возникла проблемма с щелчками мыши. NM_CLICK / NM_RCLICK обрабатываются, только если нажать и отпустить кнопку, не сдвинув курсор мыши. А мне надо, чтобы обработка происходила сразу при WM_LBUTTONDOWN и при нажатии стрелок на клавиатуре (как в Utorrent'e). пытался принимать сообщение LVN_ITEMACTIVATE, но оно приходит только при двойном щелчке или при нажатии на ENTER. Сообщение LVN_ITEMCHANGED приходит по нескольку раз подряд, что очень неприемлимо. подозреваю, что надо создать для Листвью отдельную процедуру и принимать сообщения WM_LBUTTONDOWN и WM_KEYDOWN. если да, то как в таком случае их обрабатывать? Нужно узнать Item+SubItem,по которым я щелкнул. для WM_KEYDOWN узнать только Item. |
![]() |
![]() |
![]() |
#12 | ||
Подтвердите свой е-майл
Регистрация: 19.10.2011
Сообщений: 28
|
![]() Цитата:
Цитата:
Код:
|
||
![]() |
![]() |
![]() |
#13 | |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() Цитата:
спасибо. теперь всё так, как задумано. однако, я считаю, что Microsoft перемудрили с сообщениями в WM_NOTIFY. Получается большая куча (если создать много контролов). Легко запутаться в CASE IF ELSE. p.s. Забыл еще вот что: как отсортировать все элементы в трех колонках так, чтобы сохранить их зависимость друг от друга? это делается вручную или Листвью может это сделать сам? Опять же "как в Utorrent'е" ![]() если автоматически, то как именно? если вручную, то как правильно задать поиск по форуму? p.p.s. В Utorrent'e информация в Листвью обновляется по таймеру, что усложняет сортировку. А мне надо просто один раз отсортировать и всё. Последний раз редактировалось BLACK_RAIN; 25.04.2012 в 16:32. |
|
![]() |
![]() |
![]() |
#14 | ||
Подтвердите свой е-майл
Регистрация: 19.10.2011
Сообщений: 28
|
![]() Цитата:
Цитата:
Зато и сортировка делается элементарно: вызывается ListView_SortItems с функцией сравнения, которая получает 2 указателя на реальные данные. В соответствии с необходимостью, возвращается результат -1, 0 или 1 (определяющий, будут ли меняться эти 2 элемента местами), и при следующей отрисовке ListView будет работать уже с новым порядком строк. Если надо - потом набросаю пример, но это будет не раньше конца следующей недели, из-под Debian-а приложения на WinAPI не очень просто писать ![]() |
||
![]() |
![]() |
![]() |
#15 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
да, было бы неплохо увидеть код.
а то, на словах такие замуты не особо понятны. мне не срочно. в любое время. нашел еще траблу: надо программно изменить выбранную строку. (Выделить n-ную строку). LVM_SETSELECTIONMARK меняет только индекс, а выделенная строка не меняется. Код:
Последний раз редактировалось BLACK_RAIN; 26.04.2012 в 10:46. |
![]() |
![]() |
![]() |
#16 | |
Подтвердите свой е-майл
Регистрация: 19.10.2011
Сообщений: 28
|
![]() Цитата:
Код:
В общем, вот, набросал тут программку, должно работать, попробуй, я не компилировал, если что не так - говори. |
|
![]() |
![]() |
![]() |
#17 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() |
![]() |
![]() |
![]() |
#18 | |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Несколько вопросов | phphel | Общие вопросы Delphi | 19 | 30.01.2011 21:24 |
несколько вопросов по C | Horus92 | Общие вопросы C/C++ | 2 | 15.11.2009 16:08 |
БД - Несколько вопросов | lutdan | БД в Delphi | 3 | 11.10.2009 20:22 |
Несколько Вопросов | Дорст | Общие вопросы Delphi | 3 | 12.11.2007 09:18 |