Окно органа управления List View создается функцией CreateWindowEx на базе класса окна WC_LISTVIEW , например так:
hwndList = CreateWindowEx(0L, WC_LISTVIEW, "", WS_VISIBLE | WS_CHILD | WS_BORDER | LVS_REPORT | LVS_EDITLABELS, 0, 0, rc.right - rc.left, rc.bottom - rc.top, hWnd, (HMENU)IDC_LISTVIEW, hInst, NULL);
Перед вызовом этой функции вы должны загрузить в память DLL-библиотеку COMCTL32.DLL , для чего следует вызвать функцию InitCommonControls без параметров.
В дополнение к обычным стилям окна, таким как WS_VISIBLE, WS_CHILD и WS_BORDER, необходимо указать специальные стили с префиксом имени LVS_, определяющие внешний вид и поведение органа управления List View. Как минимум, следует указать один из следующих четырех стилей: LVS_REPORT , LVS_ICON, LVS_SMALLICON или LVS_LIST.
Ниже мы привели краткое описание этих, а также остальных стилей окна List View.
Стиль | Описание |
LVS_REPORT | Список отображается в виде детального отчета, состоящего из нескольких столбцов (рис. 3.1) |
LVS_ICON | Список отображается в виде окна с пиктограммами стандартного размера (рис. 3.2) |
LVS_SMALLICON | Список отображается в виде окна с пиктограммами уменьшенного размера (рис. 3.3) |
LVS_LIST | Простой список с пиктограммами уменьшенного размера (рис. 3.4) |
LVS_ALIGNLEFT | Используется вместе с LVS_ICON и LVS_SMALLICON. Если указан этот стиль, пиктограммы будут выровнены по левой границе |
LVS_ALIGNTOP | Используется вместе с LVS_ICON и LVS_SMALLICON. Если указан этот стиль, пиктограммы будут выровнены по верхней границе. Стиль LVS_ALIGNTOP используется по умолчанию |
LVS_AUTOARRANGE | Используется вместе с LVS_ICON и LVS_SMALLICON для выполнения автоматического размещения пиктограмм внутри окна органа управления List View |
LVS_NOSCROLL | Отключение возможности свертки содержимого окна органа управления List View |
LVS_EDITLABELS | Этот стиль позволяет пользователю редактировать название элемента списка. Если указан стиль LVS_EDITLABELS, приложение должно обрабатывать извещение LVN_ENDLABELEDIT, которое будет описано позже |
LVS_NOCOLUMNHEADER | Если указан стиль LVS_NOCOLUMNHEADER, в режиме детального просмотра не отображается заголовок столбцов, с помощью которого выполняется сортировка и изменение размера столбцов |
LVS_NOLABELWRAP | Подпись под пиктограммами отображается в одной строке |
LVS_NOSORTHEADER | Если указан этот стиль, с помощью заголовка окна невозможно выполнить сортировку столбцов в режиме детального просмотра |
LVS_OWNERDRAWFIXED | Стиль позволяет родительскому окну выполнить рисование содержимого списка. Для этого родительское окно должно обрабатывать сообщение WM_DRAWITEM |
LVS_SHAREIMAGELIST | Этот стиль предназначен для организации совместного использования списков изображений несколькими органами управления List View |
LVS_SHOWSELALWAYS | Выбранные элементы списка отображаются с выделением даже в том случае, когда орган управления List View не активен |
LVS_SINGLESEL | Пользователь может выделить в списке только один элемент (по умолчанию можно выделить сразу несколько элементов) |
LVS_SORTASCENDING | Выполнение сортировки текстовых строк элементов в прямом порядке |
LVS_SORTDESCENDING | То же, но в обратном порядке |