Davs.
Jeg har lavet et test program med et listview, som tilføjer en ting med eget
ikon og i øvrigt virker fint.
Men hvad skal jeg gøre for at tingen skifter ikon når den bliver valgt?
Klaus.
[KODE]
LVITEM ting;
HIMAGELIST imagelst;
HIMAGELIST selected_imagelst;
HIMAGELIST old_imagelst;
DWORD err;
char buf [100];
int index;
// Lav en imagelist og assign den til listview'en
imagelst = ImageList_LoadImage ( instance,
MAKEINTRESOURCE (IDB_ICONS),
32,
0,
CLR_NONE,
IMAGE_BITMAP,
LR_CREATEDIBSECTION | LR_DEFAULTCOLOR );
err = GetLastError ();
if (imagelst == NULL) {
sprintf ( (char*)&buf, "ImageList_LoadImage fejlede (%d)", err);
MessageBox ( NULL, (char*)&buf, "Fejl", 0);
EndDialog ( hDlg, 0 );
return TRUE;
};
selected_imagelst = ImageList_LoadImage ( instance,
MAKEINTRESOURCE (IDB_SELECTED),
32,
0,
CLR_NONE,
IMAGE_BITMAP,
LR_CREATEDIBSECTION | LR_DEFAULTCOLOR );
err = GetLastError ();
if (imagelst == NULL) {
sprintf ( (char*)&buf, "ImageList_LoadImage fejlede (%d)", err);
MessageBox ( NULL, (char*)&buf, "Fejl", 0);
EndDialog ( hDlg, 0 );
return TRUE;
};
old_imagelst = (HIMAGELIST) SendMessage ( GetDlgItem (hDlg, IDC_LIST3),
LVM_SETIMAGELIST,
(WPARAM) LVSIL_NORMAL,
(LPARAM) imagelst );
old_imagelst = (HIMAGELIST) SendMessage ( GetDlgItem (hDlg, IDC_LIST3),
LVM_SETIMAGELIST,
(WPARAM) LVSIL_STATE,
(LPARAM) selected_imagelst );
// Indsæt en test ting
memset ( &ting, 0, sizeof (LVITEM) );
ting.mask = LVIF_IMAGE | LVIF_TEXT;
ting.iItem = 0;
ting.pszText = "Test-Ting";
ting.cchTextMax = 20;
ting.iImage = 0;
index = (int) SendMessage ( GetDlgItem (hDlg, IDC_LIST3),
LVM_INSERTITEM,
0,
(LPARAM) &ting );
if (index == -1) {
sprintf ( (char*)&buf, "LCM_INSERTITEM fejlede (%d)", err);
MessageBox ( NULL, (char*)&buf, "Fejl", 0);
EndDialog ( hDlg, 0 );
return TRUE;
};
[/KODE]
|