Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Вниз

Tlistview Проясните ситуацию   Найти похожие ветки 

 
hrs   (2004-04-30 07:11) [0]

столько вопросов вижу по tlistview
как поставить фоновый рисунок и неодного нормального ответа
может кто-нить всетаки даст рабочий код как это сделать?


 
hrs   (2004-04-30 07:24) [1]

вот накопал вроде visual basik ноя его не шарю может переведете в делфи очень нужно

Option Explicit

Private Const NOERROR = &H0&
Private Const S_OK = &H0&
Private Const S_FALSE = &H1&
Private Const LVM_FIRST = &H1000
Private Const LVM_SETBKIMAGE = (LVM_FIRST + 68)
Private Const LVM_SETTEXTBKCOLOR = (LVM_FIRST + 38)
Private Const LVBKIF_SOURCE_URL = &H2
Private Const LVBKIF_STYLE_TILE = &H10
Private Const CLR_NONE = &HFFFFFFFF
" Bitmaps in list views!
Private Type LVBKIMAGE
   ulFlags As Long
   hbm As Long
   pszImage As String
   cchImageMax As Long
   xOffsetPercent As Long
   yOffsetPercent As Long
End Type

Private Declare Sub CoUninitialize Lib "OLE32.DLL" ()
Private Declare Function CoInitialize Lib "OLE32.DLL" (ByVal pvReserved As Long) As Long
Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Sub SetBackground()
Dim sI As String
Dim lHDC As Long
   
  " Set a background image:
  sI = "BACK.GIF"
 
  If (Len(sI) > 0) Then
     If (InStr(sI, "")) = 0 Then
        sI = App.Path & "" & sI
     End If
     On Error Resume Next
     If (Dir(sI) <> "") Then
        If (Err.Number = 0) Then
           " Set the background:
           Dim tLBI As LVBKIMAGE
           tLBI.pszImage = sI & Chr$(0)
           tLBI.cchImageMax = Len(sI) + 1
           tLBI.ulFlags = LVBKIF_SOURCE_URL Or LVBKIF_STYLE_TILE
           SendMessage lvwTest.hwnd, LVM_SETBKIMAGE, 0, tLBI
           " Set the background colour of the ListView to &HFFFFFFFF (-1)
           " so it will be transparent!
           SendMessageLong lvwTest.hwnd, LVM_SETTEXTBKCOLOR, 0, CLR_NONE
        Else
           MsgBox "Error with File "" & sI & "" :" & Err.Description & ".", vbExclamation
        End If
     Else
        MsgBox "File "" & sI & "" not found.", vbExclamation
     End If
  End If

End Sub

Private Sub Form_Load()
   Dim i As Byte
   Dim itmX As ListItem
   Dim lR As Long
   With lvwTest
       "// required for using bitmaps
       lR = CoInitialize(0)
       Debug.Print lR
       If (lR <> NOERROR) And (lR <> S_FALSE) Then
           Debug.Print "CoInitialize failed"
       End If
       .ColumnHeaders.Add , "H1", "Col1"
       .ColumnHeaders.Add , "H2", "Col2"
       .ColumnHeaders.Add , "H3", "Col3"
       .ColumnHeaders.Add , "H4", "Col4"
       Randomize
       For i = 1 To 20
           " Add text
           Set itmX = .ListItems.Add(, "C" & i, "Test Item " & i)
           
           " Col2= Col2 + Item
           itmX.SubItems(1) = "Col2 " & i
           " Col3= Item Number
           itmX.SubItems(2) = i
       Next i
       SetBackground
  End With
End Sub


 
Романов Р.В. ©   (2004-04-30 08:40) [2]

ListView_SetTextBkColor(ListView1.Handle,CLR_NONE);
ListView_SetBkColor(ListView1.Handle,CLR_NONE);
ListView1.Brush.Bitmap :=Image1.Picture.Bitmap;


 
ZDDR ©   (2004-04-30 08:51) [3]

не работают функции:
ListView_SetTextBkColor(ListView1.Handle,CLR_NONE);
ListView_SetBkColor(ListView1.Handle,CLR_NONE);


 
hrs   (2004-04-30 08:54) [4]

да у меня тоже не работает


 
Романов Р.В. ©   (2004-04-30 08:56) [5]

Нужно что то написать в uses. Поиск в файлах поможет.

PS: Как дети... блин :)


 
hrs   (2004-04-30 09:05) [6]

не помог может всетаки напишите?


 
[lamer]Barmaglot ©   (2004-04-30 09:09) [7]

Uses
commctrl;


 
DVM ©   (2004-04-30 09:14) [8]


> не работают функции:
> ListView_SetTextBkColor(ListView1.Handle,CLR_NONE);
> ListView_SetBkColor(ListView1.Handle,CLR_NONE);

все работает.

LVM_SETBKIMAGE не будет работать с ListView на VCL. На Api-шном без проблем почему-то. Я так и не понял.

А вообще используйте WM_ERASEBKGND.


 
hrs   (2004-04-30 09:17) [9]

да вы пример дайте как его использовать
нифига понять не могу


 
Романов Р.В. ©   (2004-04-30 09:20) [10]

А тут ничего понимать не надо. Вырезал - вставил.
Есть 2 подводных камня.
1. В некоторых случаях необходимо перерисовать ListView
2. В Image1 должен быть загружен bmp файл.


 
DVM ©   (2004-04-30 09:21) [11]


> да вы пример дайте как его использовать
> нифига понять не могу

А что яндекс не работает?
http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=7879



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.05 c
4-1080557192
Nic
2004-03-29 14:46
2004.05.16
Два вопросика


4-1080243638
Swimmer
2004-03-25 22:40
2004.05.16
Как создать меню полностью на WinAPI?


3-1082710900
explorer
2004-04-23 13:01
2004.05.16
Добавление данных в БД


9-1072722745
SoulSilver
2003-12-29 21:32
2004.05.16
Поведение тел в космосе, физика, инерция и т.д.


1-1083059717
rexelf
2004-04-27 13:55
2004.05.16
ProgressBar при формировании запроса...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский