CB_SETITEMDATA
-
Hallo,
zur zeit arbeite ich an einem Formular mit einer combobox. zu jedem eintrag in der combobox muss ich auch einen zeiger speichern. Dieses mache folgender maßen:ListGeraetetype->insertData(D3D_Geraetetype); //Daten in eine Liste schreiben if(CB_ERR ==SendDlgItemMessage(hWnd, IDC_Geraetetype, CB_SETITEMDATA,iIndex,(LPARAM)(ListGeraetetype->getLast())))//Zeiger zum letzten eintrag bekommen - insert hängt einfach immer hinten an die liste { MessageBox(NULL,"Fehler in IDC_Geraetetype ist aufgetreten","Fehler",MB_OK); }wird eine andere funktion aufgerufen und ich möchte den zeiger bekommen, so bekomme ich leider eine leere struktur.
iIndex = (int)(SendDlgItemMessage(hWnd,IDC_Geraetetype,CB_GETCURSEL,0,0)); //Geraetetypeneummer D3D_Info * test = (D3D_Info *)(SendDlgItemMessage(hWnd,IDC_Geraetetype,CB_GETITEMDATA,iIndex,(LPARAM)(ListGeraetetype->getLast())));leider ist mir jetzt der Fehler unklar wieso die informationen verloren gehen. der handle auf das fenster ist noch das gleiche. Sehr komisch finde ich auch bei manchen comboboxen werden die daten gepeichert und sind abrufbar und bei manchen nicht.
Wenn jemand nur eine kleine vermutung hat, bitte eben melden, weil ich weiß echt nicht mehr weiter
in großer hoffnung
Mr. Elektro
-
Tag!
also, ich hab auch mal was ausprobiert, und bei mir geht das einfandfrei!
ich habe eine combobox und ein statisches element... für "CB_SETITEMDATA" setze ich den handle von dem statischen element..danach hol ich den mit "CB_GETITEMDATA" wieder...
also:
[code]
SendMessage(hwndDlg,IDC_COMBO,CB_SETITEMDATA,0,(DWORD)GetDlgItem(hwndDlg,IDC_STATIC));HWND *hwndStatic=(HWND *)SendMessage(hwndDlg,CB_GETITEMDATA,0,0);
...geht...
mfg