FreeBasic
Главная
Вход
Регистрация
Среда, 07.12.2022, 20:42Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Библиотеки для FreeBasic » Библиотека Window9 для Freebasic » ListViewGadget (изменить цвет и шрифт отдельной строки)
ListViewGadget
justarДата: Вторник, 28.08.2012, 08:36 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 0
Статус: Offline
Можно ли это сделать в сабже?
 
haavДата: Вторник, 28.08.2012, 11:21 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1300
Репутация: 47
Статус: Offline
Quote (justar)
Можно ли это сделать в сабже?




Code

#Include "window9.bi"

Dim Shared As HWND LWHwnd

Function windowproc(hwnd As HWND,msg As UINT,wParam As WPARAM,lParam As LPARAM) As Integer  
    Select Case msg
   Case WM_NOTIFY
    Dim nmlcd As LPNMLVCUSTOMDRAW = Cast(LPNMLVCUSTOMDRAW,lParam )
    If nmlcd->nmcd.hdr.code = NM_CUSTOMDRAW Then
     If nmlcd->nmcd.hdr.hWndFrom = LWHwnd Then
      Select Case nmlcd->nmcd.dwDrawStage
       Case CDDS_PREPAINT
        Return CDRF_NOTIFYITEMDRAW
       Case CDDS_ITEMPREPAINT
        If nmlcd->nmcd.dwItemSpec = 0 Then
         nmlcd->clrText = &h00ffff
         nmlcd->clrTextBk = &h000FF0
        ElseIf nmlcd->nmcd.dwItemSpec = 1 Then
         nmlcd->clrText = &hFF0000
         nmlcd->clrTextBk = &hFF00FF
        EndIf
      End Select
     EndIf
    EndIf
    End Select
End Function

Var hwnd=OpenWindow("ColorLW",10,10,190,120)
Var Style= LVS_EX_FULLROWSELECT  Or LVS_EX_GRIDLINES
LWHwnd=ListViewGadget(1,10,10,150,53,Style,,,0)
AddListViewColumn(1, "Столбец",0,1,150)
AddListViewItem(1,"1 строка",0,0,0)
AddListViewItem(1,"2 строка",0,1,0)
SetWindowCallback(@windowproc())
Do
  Var event=WaitEvent()
  If Event=EventClose Then End
Loop
Прикрепления: 6761481.png(10.2 Kb)


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
justarДата: Вторник, 28.08.2012, 17:01 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 0
Статус: Offline
Спасибо, принцип понятен - всё определяется вот этими строками:
Quote (haav)
If nmlcd->nmcd.dwItemSpec = 0
ElseIf nmlcd->nmcd.dwItemSpec = 1

Но здесь раскраска меняется в зависимости от номера строки, а можно в этот момент считывать содержимое определённого SubItem строки что бы изменять цвета в зависимости от его содержимого?

PS: извиняюсь, если вопрос наивен, просто я пока дремучий в Win32API - даже не очень понимаю где рыть...
 
haavДата: Вторник, 28.08.2012, 17:40 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 1300
Репутация: 47
Статус: Offline
Quote (justar)
Но здесь раскраска меняется в зависимости от номера строки, а можно в этот момент считывать содержимое определённого SubItem строки что бы изменять цвета в зависимости от его содержимого?


Не очень понял. В любом случае вот ЭТА статья очень хорошо поясняет по поводу ListView.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
justarДата: Вторник, 28.08.2012, 18:20 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 0
Статус: Offline
Quote (haav)
статья очень хорошо поясняет по поводу ListView.

Cпасибо
 
Форум » Библиотеки для FreeBasic » Библиотека Window9 для Freebasic » ListViewGadget (изменить цвет и шрифт отдельной строки)
  • Страница 1 из 1
  • 1
Поиск: