我想在combobox中为每个ITEM存储一个对应的字符串
怎么保存和取出?
怎么保存和取出?
解决方案 »
- 如何启动WORD,并打开指定的WORD文件
- 计算机某级考试__代码改错
- nmake怎么使用?
- Help!哪位帮我提供一个VC聊天程序,不能用MFC的?
- 向EDIT框里输入数据时发生奇怪的问题,求助!
- 在MDI的菜单“窗口”中会自动产生以打开的子窗口的标题!怎样把它隐藏掉!
- 【在线等候】有关对话框内的CListCtrl控件的使用
- 紧急求救,用DSHOW如何实现VIDEO的快进快退啊?
- 菜鸟求救!List Control的图片
- ???高分求解简单问题。
- 操作注册表:为什么我在HKEY_CURRENT_USER下写的值为什么不见了?
- 用VC6打开半条命的engine来build,在LINK时出现错误。好像是动态链接库的路径问题。不知如何解决。
可我是想在插入了这些串的同时,在COMBOBOX中保存其对应的字符串
m_Combo.SetCurSel(0);
CString buf = "1234^56";
*buffer = buf.Right(buf.GetLength()-buf.Find(L"^")-1);
int i = m_cCB.AddString(*buffer);
*buffer = buf.Left(buf.Find(L"^"));
m_cCB.SetItemDataPtr( i , (void*)buffer);看看你用不用得着
CString str;
str = m_combo.GetWindowText();
m_combo.AddString(str);
m_combo.SetCurSel(0);
m_combo.AddString("dfdfdfdf");
就加入了这个字符串或用
InsertString(0,"dfdfdf")
这样也可以加入字符串为0索引上要取得item可以这样啊
int sel;
CString str;
sel = m_combo.GetCurSel();
m_combo.GetLBText(sel, str);
这样索引为sel的字符串就到了str里了
你的程序可以把指针放进去,那么要读取该指针对应的字符串呢?
char *pTemp = new char[MAX_PATH];
memset(pTemp , 0 , sizeof(pTemp));
int nCount = m_combo.GetCount();
m_combo.InsertString(nCount , "插入项目");
strcpy(pTemp , "插入项目");
m_combo.SetItemData(nCount , (DWORD)pTemp);
另外,你应该在删除combobox的数据时,把数据摘出来,然后删掉,这样保证没有内存泄漏,例如下面的代码:
for(int i = 0 ; i < m_combo.GetCount ; i++)
{
DWORD dwData = m_combo.GetItemData(i);
delete[] (char *) dwData;
}
*hh="fff";
((CComboBox*) GetDlgItem(IDC_FIELD_1))->AddString ("ffffdddd");
((CComboBox*) GetDlgItem(IDC_FIELD_1))->SetItemDataPtr(0,hh);
CString * yy;
yy=(CString*)((CComboBox*) GetDlgItem(IDC_FIELD_1))->GetItemDataPtr(0);按照上面的填充方式,可以实现字符串的读取和写入。可是一旦放到下面循环中就不行了CString * hh = new CString;
for(int i=0;i<5;i++)
{
myRecordset->GetFieldValue("a",fd);//读字段a
myRecordset->GetFieldValue( "b",fi);//读字段b
*hh=fi;
((CComboBox*) GetDlgItem(IDC_FIELD_1))->AddString (fd);
((CComboBox*) GetDlgItem(IDC_FIELD_1))->SetItemDataPtr(i,hh);
myRecordset->MoveNext(); }
CString* yy;
yy=(CString*)((CComboBox*) GetDlgItem(IDC_FIELD_1))->GetItemDataPtr(0);
这时就yy就无法读出了!