代替將對象與組合框項目關聯,我將long
代表與代表選項相關聯。他們來自一個數據庫,所以無論如何這樣做似乎很自然。現在,我堅持用戶選擇的id
而不是index
,以便跨會話記住這一選擇。如果數據庫中不再存在id - 沒什麼大不了的。選擇將會搞砸一次。如果數據庫沒有變化,但是,那麼這將是一個巨大的成功;)CComboBox.GetItemData的倒數是什麼?
這裏是我得到ID:
chosenSomethingIndex = cmbSomething.GetCurSel();
lastSomethingId = cmbSomething.GetItemData(chosenSomethingIndex);
如何扭轉呢?當我加載用戶最後選擇的存儲值時,我需要將該ID轉換爲索引。我可以這樣做:
cmbSomething.SetCurSel(chosenSomethingIndex);
但是,我如何嘗試(它可能不存在)獲得索引,一旦我有一個ID?
我要尋找一個互惠功能GetItemData
我使用VS2008,可能是最新版本的MFC的,不管它是什麼。
謝謝。
編輯:
啊,廢話。貌似我需要這樣做:
for (int i = 0; i < nCount; i++)
{
if (nId == GetItemData(i))
{
SetCurSel(i);
hr = S_OK;
break;
}
}