Instead of associating objects with Combo Box items, I associate long ids representing choices. They come from a database, so it seems natural to do so anyway. Now, I persist the id and not the index of the user's selection, so that the choice is remembered across sessions. If id no longer exists in database - no big deal. The choice will be messed up once. If db does not change, however, then it would be a great success ;)
Here is how I get the id :
chosenSomethingIndex = cmbSomething.GetCurSel();
lastSomethingId = cmbSomething.GetItemData(chosenSomethingIndex);
How do I reverse this? When I load the stored value for user's last choice, I need to convert that id into an index. I can do:
cmbSomething.SetCurSel(chosenSomethingIndex);
However, how can I attempt (it might not exist) to get an index once I have an id?
I am looking for a reciprocal function to GetItemData
I am using VS2008, probably latest version of MFC, whatever that is.
Thank you.