powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ListView
5 сообщений из 5, страница 1 из 1
ListView
    #35384143
gekko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи! Нужен мануал по листвью! Т.е. как сделать его максимально похожим на листбокс, в одну колонку, как добавлять\перекрашивать\удалять записи.
Буду благодарен.. Нет, просто счастлив если кто поделится инфой ))
...
Рейтинг: 0 / 0
ListView
    #35384291
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первым делом выставить View = lvwReport, добавить один ColumnHeader и сделать HideColumnHeaders = True.
Код: plaintext
1.
2.
Dim x As Long
    x = SendMessage(ListView1.hwnd, LVM_GETEXTENDEDLISTVIEWSTYLE,  0 , ByVal  0 &)
    SendMessage ListView1.hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE,  0 , ByVal CLng(x Or LVS_EX_FULLROWSELECT)
Это позволит выбирать строку целиком.

Чтобы можно было перекрашивать айтемы, нужно просабклассить контейнер, в котором лежит ListView.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Public Function LVUCProc(ByVal lng_hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim udtNMLVCUSTOMDRAW As NMLVCUSTOMDRAW
Dim uNMH     As NMHDR
Dim mFont As New StdFont
Dim IFont As IFont
    On Error GoTo errh
    If uMsg = WM_NOTIFY Then
        Call CopyMemory(uNMH, ByVal lParam, Len(uNMH))
        If uNMH.code = NM_CUSTOMDRAW Then
            CopyMemory udtNMLVCUSTOMDRAW, ByVal lParam, Len(udtNMLVCUSTOMDRAW)
            Select Case udtNMLVCUSTOMDRAW.nmcd.dwDrawStage
                Case CDDS_PREPAINT
                    LVUCProc = CDRF_NOTIFYITEMDRAW
                    Exit Function
                Case CDDS_ITEMPREPAINT
                    LVUCProc = CDRF_NOTIFYSUBITEMDRAW
                    Exit Function
                Case CDDS_ITEMPREPAINT Or CDDS_SUBITEM
                    'цвет
                    udtNMLVCUSTOMDRAW.clrText = vbWhite
                    udtNMLVCUSTOMDRAW.clrTextBk = vbBlack
                    'шрифт
                    mFont.Name = "Arial"
                    mFont.Bold = True
                    Set IFont = mFont
                    Call SelectObject(udtNMLVCUSTOMDRAW.nmcd.hDC, IFont.hFont)
                    CopyMemory ByVal lParam, udtNMLVCUSTOMDRAW, Len(udtNMLVCUSTOMDRAW)
                    LVUCProc = CDRF_NEWFONT
                    Exit Function
            End Select
        End If
    End If
errh:
    LVUCProc = CallWindowProc(lPrevWndProc, lng_hWnd, uMsg, wParam, lParam)
End Function
...
Рейтинг: 0 / 0
ListView
    #35384296
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Билл Гейтс с радостью поделится требуемой инфой. В MSDN подробно расписано про ListView.
...
Рейтинг: 0 / 0
ListView
    #35392913
gekko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рахмат!!
...
Рейтинг: 0 / 0
ListView
    #35393220
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автандил!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ListView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]