今天写代码,发现个奇怪的问题
代码如下
CString str[] = {L"a",L"b",L"c"}
for (int x = 0;x<3;x++)
{
m_box.AddString(str[i]);
m_box.SetItemData(i,(DWORD)(&str[i]));
}
DWORD dwOrd = m_box.GetItemData(m_box.GetCurSel());
此时发现无论怎么读,都只有最后一个有数值,经过仔细分析,问过度娘后,发现问题所在
修改代码如下
CString str[] = {L"a",L"b",L"c"}
for (int x = 0;x<3;x++)
{
int iAddString = m_box.AddString(str[i]);
m_box.SetItemData(iAddString ,(DWORD)(&str[i]));
}
DWORD dwOrd = m_box.GetItemData(m_box.GetCurSel());
至此,所有数据正常
以下是另外一个兄弟撰写,在此留个烙印