代码如下:
首先在头文件中定义变量:
CString temp;
char* str;
以下是.CPP文件中的代码:
m_combo.InsertString(0,"第一项");
temp="第一项的值";
str=(LPSTR)(LPCTSTR)temp;
m_combo.SetItemDataPtr(0,str);m_combo.InsertString(1,"第二项");
temp="第二项的值";
str=(LPSTR)(LPCTSTR)temp;
m_combo.SetItemDataPtr(1,str);以下是取得选中的值:
char* p=(LPTSTR)m_combo.GetItemDataPtr(m_combo.GetCurSel());
我的问题是,我无论选项第一项,还是第二项,它的值都是一样的.按理来说,我如果选中第一项时,它的值应该是"第一项的值",如果我选中第二项,它的值应该是"第二项的值"才对,可我无论选哪项,它的值都是"第二项的值",为什么?
首先在头文件中定义变量:
CString temp;
char* str;
以下是.CPP文件中的代码:
m_combo.InsertString(0,"第一项");
temp="第一项的值";
str=(LPSTR)(LPCTSTR)temp;
m_combo.SetItemDataPtr(0,str);m_combo.InsertString(1,"第二项");
temp="第二项的值";
str=(LPSTR)(LPCTSTR)temp;
m_combo.SetItemDataPtr(1,str);以下是取得选中的值:
char* p=(LPTSTR)m_combo.GetItemDataPtr(m_combo.GetCurSel());
我的问题是,我无论选项第一项,还是第二项,它的值都是一样的.按理来说,我如果选中第一项时,它的值应该是"第一项的值",如果我选中第二项,它的值应该是"第二项的值"才对,可我无论选哪项,它的值都是"第二项的值",为什么?
temp="第一项的值";
str = new TCHAR[temp.GetLength() + 1];
lstrcpy(str, temp.GetBuffer());
m_combo.SetItemDataPtr(0, str); m_combo.InsertString(1,"第二项");
temp="第二项的值";
str = new TCHAR[temp.GetLength() + 1];
lstrcpy(str, temp.GetBuffer());
m_combo.SetItemDataPtr(1, str);
大致上这样。