/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Listview spørgsmål
Fra : Klaus Petersen


Dato : 24-06-02 08:20

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]



 
 
Søg
Reklame
Statistik
Spørgsmål : 177496
Tips : 31968
Nyheder : 719565
Indlæg : 6408491
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste