Hallo Leute,
ich versuche seit einiger Zeit mit Profan Listview Controls zu erstellen und stoße dabei immer wieder auf Probleme, die sich bisher allerdings irgendwie von allein lösten, bzw bei denen ich den Fehler endeckte. Jetz jedoch, so scheint es, hänge ich fest: Ich habe probiert in ein Listveiw-control eine Spalte einzu fügen (die erste Spalte), was auch funktioniert, allerdings nur mit einem Haken: ich kann der Spalte keinen Namen geben, sie erscheint auf dem Bildschirm jedoch ohne Name. Hier mein Quelltext:
Declare WC_CLASS#,WC_NAME# 'String für die CreateWindowEx - CLassenname, Fensterüberschrift
Declare LV_STRUCT# , LV_STRUCT2#,LVI_NAME#,LVC_NAME# 'Struktur für um ein Item einem Listview hinzuzufügen, ItemTextVariable
Declare itemIndex%,spalte%
Dim LVI_NAME#,255
'--------------------------------------- LV_ITEM STRUKTUR---------------------------------
struct LV_ITEM = mask#(1),iItem%,iSubItem%,state%,stateMask%,pszText&,cchTextMax%,iImage%,LParam&
Dim LV_STRUCT#,LV_ITEM
let LV_STRUCT#.mask# = 1 'Muss Text, Image, Param oder State gesetzt werden.
let LV_STRUCT#.iItem% = itemIndex% 'index des Items, das eingefügt wird
let LV_STRUCT#.iSubItem% = spalte% 'in welche spalte (one-based) kommt das Item, wenn es ein Subitem ist (sonst 0)
let LV_STRUCT#.state% = 0 'ist der neue Eintrag makiert, selktiert usw. ??? (wird nicht gesetzt, da mask# = 1)
let LV_STRUCT#.stateMask% = 0 'erweiterung von state%
let LV_STRUCT#.pszText& = LVI_NAME# 'Pointer auf String, in dem der Name steht.
let LV_STRUCT#.cchTextMax% = 255 'Größe diese Strings (in Byte)
let LV_STRUCT#.iImage% = 0 'Index des Icons der zugehörigen ImageList (wird nicht gesetzt, da mask# = 1)
let LV_STRUCT#.LParam& = 0 'LParam&, (wird nicht gesetzt, da mask# = 1)
String LVI_NAME#,0 = "NAME"
'--------------------------------------- LV_COLUMN STRUKTUR---------------------------------
struct LV_COLUMN = mask#(1),fmt%,cx%,pszText&,cchTextMax%,iSubItem%
Dim LVC_NAME#, 40
Dim LV_STRUCT2#,LV_COLUMN
let LV_STRUCT2#.mask# = 7 'Muss Text, Format, Pixel-width oder SubItem gesetzt werden.
let LV_STRUCT2#.fmt% = 0 'Align = left
let LV_STRUCT2#.cx% = 40 'Pixelbreite
let LV_STRUCT2#.pszText& = LVC_NAME# 'Pointer auf Spaltennamen-Variable
let LV_STRUCT2#.cchTextMax% = 40 'Länge der Spaltennamen-Variable
let LV_STRUCT2#.iSubItem% = 0
String LVC_NAME#,0 = "NAME DER SPALTE" '(Genau der Teil, in dem der NAme der Spalte definiert wird)
'-------------------------------------------------------------------------------------------
Dim WC_CLASS#,32
String WC_CLASS#,0="SysListView32"
Dim WC_NAME#,1
String WC_NAME#,0=""
let Lvbox& = @CreateWindowEx (0,WC_CLASS#,WC_NAME#,$50000001,40,40,400,200,%hwnd,0,%hinstance,0)
print @sendmessage (Lvbox&,4123,0,LV_STRUCT2#)
Mit der Sendmessage-funktion habe ich die Spalte hinzugefügt. (Rückgabewert ist 0)
Gedankt seis dem, ders mir sagen kann ;)
Schöne Grüße,
Philipp
|