ListView -> Header -> OwnerDraw ?
-
moin meisters ...
nur kurz: Welcher Style ist zu setzen, damit ich den Header im ListView
selber zeichnen kann ? Habe versucht dem Header BS_OWNERDRAW zu geben
ist wohl nicht gelungen, ist BS_OWNERDRAW denn überhaupt richtig ?MfG
RB
-
Nein, ist falsch - HDF_OWNERDRAW ist richtig.

-
BS_OWNERDRAW ist für buttons
-
ok, danke.
-
moin meisters ...
Problem:
HWND hHeader= ListView_GetHeader(hList); HDITEM hdi; LV_COLUMN lvc; lvc.mask = LVCF_TEXT|LVCF_WIDTH|LVCF_SUBITEM|LVCF_FMT; lvc.fmt = LVCFMT_LEFT; lvc.iSubItem = 0; lvc.cx = 118; lvc.pszText = TEXT("Name\0"); lvc.cchTextMax = lstrlen(lvc.pszText); ListView_InsertColumn(hList, 0, &lvc); memset(&hdi, 0, sizeof(hdi)); bool bRet = Header_GetItem(hHeader, 0, &hdi); hdi.fmt |= HDF_OWNERDRAW; bRet = Header_SetItem(hHeader, 0, &hdi);Programm funktioniert soweit, jedoch bekomme ich das HeaderItem nicht um den
Style zu stetzen.
Alle Werte sind 0 in hdi.
bRet ist true also erfolgreich.
LV ist auf einem Dialog.Keine Kopfstände, bin nicht drauf angewiesen, aber wäre doch schön wenn jemand ne Idee hat

mfg
RB
-
Du musst angeben welche Members gültig sind bzw. gefüllt werden sollen. In deinem Fall muss mask den HDI_FORMAT Flag beinhalten.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/header/structures/hditem.asp
-
TREFFER ! VERSENKT !
Mit FORMAT nd WIDTH funktioniert es, mit Text nicht, kann aber auch an ner Eigenart der LV liegen, daß beim erzeugen der Colums der Text irgendwie anders
hinterlegt wird ... aber das benötige ich ja nicht.Danke.
RB
-
Es muss funktionieren, hast du die Größe deines TCHAR Buffers angegeben (cchTextMax Member)?

cchTextMax
Length of the item string, in characters. If the text is being retrieved from the control, this member must contain the number of characters at the address specified by pszText.