Ik heb een probleem en dat is dat de waarde lParam van mijn listview items verdwijnt. Bij het aanmaken van de listview items zet ik de waarde van de lParam op 2:
En bij het dubbelklikken op een listview item, wil ik aan de hand van de lParam waarde kijken wat voor actie deze moet uitvoeren. Maar hier is deze nooit meer 2... Dit probeer ik op deze manier:
Jammer genoeg komt er alleen nooit een 'goed' op het scherm, maar altijd fout. Als ik kijk naar de lvItem.pszText, heeft deze wel de juiste waarde.
Als ik bij het toevoegen in de laatste regel de waarde lvItem.lParam opvraag, is die nog steeds 2, maar op het volgende punt waar ik hem kan controleren heeft ie een waarde van boven 1 mln.
C++:
1
2
3
4
5
6
7
8
9
10
| LV_ITEM lvItem; lvItem.mask = LVIF_TEXT |LVIF_IMAGE |LVIF_STATE | LVIF_PARAM; lvItem.state = 0; lvItem.stateMask = 0; lvItem.iImage = 2; lvItem.lParam = 2; lvItem.iItem = iProgram; lvItem.iSubItem = 0; lvItem.pszText = psList[iProgram].strname; GetListCtrl().InsertItem(&lvItem); |
En bij het dubbelklikken op een listview item, wil ik aan de hand van de lParam waarde kijken wat voor actie deze moet uitvoeren. Maar hier is deze nooit meer 2... Dit probeer ik op deze manier:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| LV_ITEM lvItem; char buffer[20]; lvItem.pszText = buffer; lvItem.cchTextMax = sizeof(buffer); POSITION pos = GetListCtrl().GetFirstSelectedItemPosition(); int iItem = GetListCtrl().GetNextSelectedItem(pos); lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM; lvItem.iItem = iItem; lvItem.iSubItem = 0; int iTmp = GetListCtrl().GetItem(&lvItem); if (lvItem.lParam == 2){ AfxMessageBox("goed"); }else{ AfxMessageBox("fout"); } |
Jammer genoeg komt er alleen nooit een 'goed' op het scherm, maar altijd fout. Als ik kijk naar de lvItem.pszText, heeft deze wel de juiste waarde.
Als ik bij het toevoegen in de laatste regel de waarde lvItem.lParam opvraag, is die nog steeds 2, maar op het volgende punt waar ik hem kan controleren heeft ie een waarde van boven 1 mln.
Ik zeg maar zo, ik zeg maar nix. dan zeg ik al veel te veel.