Несколько вопросов ListView - PullRequest
       6

Несколько вопросов ListView

1 голос
/ 26 апреля 2009

Документация по элементу управления ListView (с использованием WinApi), по-видимому, не содержит некоторой базовой информации, вот некоторые вопросы, на которые я не смог найти решение:

  1. В большинстве приложений, когда вы дважды щелкаете границу справа от столбца, размер столбца изменяется до некоторой ширины по умолчанию. Я бы догадался, что эта ширина указана LVCOLUMN.cxDefault или cxIdeal, но, похоже, он этого не делает. Чего мне не хватает?

  2. При щелчке по определенному столбцу для сортировки списка в соответствии с ним сверху появляется небольшая стрелка, указывающая направление сортировки. Как мне сделать так, чтобы это появилось? Кстати, кто-нибудь знает, какой алгоритм сортировки использует ListView?

  3. Когда в режиме просмотра отчета можно выбрать целую строку вместо первого элемента? (Это просто визуальная вещь, функционально она идентична)

  4. Можно ли вставить несколько элементов одновременно?

Ответы [ 2 ]

2 голосов
/ 26 апреля 2009

Хорошо, вот ответ на вторую проблему: http://www.winapizone.net/tutorials/winapi/listview/columnsortimage.php

1 голос
/ 26 апреля 2009
  1. Он рассчитывается на основе отображаемой ширины каждого элемента в этом столбце.
  2. Стрелка - это пользовательское изображение, установленное вашей программой. Если вы не установите изображение (связав список изображений с заголовком, а затем указав изображение для каждого элемента заголовка по индексу), вы его не получите. Я не знаю, что такое алгоритм сортировки, но алгоритм сравнения элементов - это то, что вам нужно - вы должны указать обратный вызов.
  3. Да - установить расширенный стиль LVS_EX_FULLROWSELECT на элементе управления
  4. Нет. Но вы можете отключить перерисовку при добавлении нескольких элементов.

Моя лучшая рекомендация для вас, если вы новичок в работе с элементом управления ListView, - прочитать многочисленные статьи о CodeProject . Даже если вы не работаете с MFC (как многие статьи), эти концепции все еще применимы - просто переводите вызовы в эквивалентные макросы PlatformSDK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...