Множественное выделение в List View'е

Тема в разделе "WASM.WIN32", создана пользователем yureckor, 25 сен 2004.

  1. yureckor

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    Хочу в List View'е повесить на одиночный клик выделение item'а, я его мечу как LVIS_SELECTED на NM_CLICK, но он пропадает после следующего клика.

    Где чего перехватить чтобы на клик выделенные итемы не снимались?
     
  2. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев


    может метишь как-то не так, приведи код хоть и почему не на WM_LBUTTONDOWN вешаешь?
     
  3. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    yureckor

    LVS_SINGLESEL случайно не стоит?
     
  4. yureckor

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    Да нет, выделяет он нормально, или несколько(для проверки первые 3 выделял), но он в автомате снимает все выделенные когда еще раз щелкаешь.

    А код здоровый слишком, у меня уже exe'шник на 40kB :)
     
  5. Foamplast

    Foamplast New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2003
    Сообщения:
    80
    Адрес:
    Russia
    Так этот контрол так работает - при щелчке на элементе снимает выделение с уже выделенных и выделяет щёлкнутый элемент. Не нравится - пиши свой. Это где-то ~50 Кб текста, соответственно машкода вообще не много.
     
  6. yureckor

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    Ну его нафиг, самому писать.

    Тут оказывается можно несколько пунктов выделять если одновременно ctrl нажать.

    Может как-нибудь сымитировать нажатие ctrl?
     
  7. Foamplast

    Foamplast New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2003
    Сообщения:
    80
    Адрес:
    Russia
    Сабклассь листвью и перехвати NM_CLICK. При получении этого сообщения узнай, какие элементы выделены, и запомни. Потом передай сообщение листвью, а затем опять поставь атрибут LVIS_SELECTED тем элементам, что запомнил.



    P.S. Если ты хочешь, чтобы одиночный щелчок левой кнопкой добавлял элемент к выделению, то лучше писать свой контрол. Потому что, во-первых, описанное мной решение может тормозить, а во-вторых, могут появляться ненужные перерисовки контрола.