MFC中的CStringList
我用2个CStringList对象进行编码。每个都有自己的数据,例如一个有名字,另一个有电话号码,两者都是同步的,也就是说,如果有电话号码,就有名字,反之亦然 现在,我有两个组合框,其中显示了姓名和相应的电话号码。名称组合框已排序,因此这两个框之间的同步将受到影响。因此,为了进行排序,我做了以下工作:MFC中的CStringList,mfc,Mfc,我用2个CStringList对象进行编码。每个都有自己的数据,例如一个有名字,另一个有电话号码,两者都是同步的,也就是说,如果有电话号码,就有名字,反之亦然 现在,我有两个组合框,其中显示了姓名和相应的电话号码。名称组合框已排序,因此这两个框之间的同步将受到影响。因此,为了进行排序,我做了以下工作: int-aComboElementNo=myNameComboBox.GetCount(); 如果(aComboElementNo>=1) { for(int-aIndex=0;aIndex
int-aComboElementNo=myNameComboBox.GetCount();
如果(aComboElementNo>=1)
{
for(int-aIndex=0;aIndex
当我执行此操作时,我在myPhoneComboBox中获得了名称,而不是phonenos 现在我有两个QN:
我希望你使用的是CStringArray,而不是CStringList。 您需要使用FindIndex而不是Find,因为Find将返回对象位置而不是索引计数。。。。 要使用数组获取元素,只需使用[]运算符。
如果仍要使用CStringList,则通过迭代器在一个列表中找到字符串的第一个匹配项的索引计数,并使用该索引计数的FindIndex获取第二个列表的position对象,以便使用GetAt将其添加到第二个列表。为什么有两个单独的列表?为什么不用一组同时包含姓名和电话号码的结构呢?请原谅,这是一种疯狂的、愚蠢的查找姓名的方式。它假定名称是唯一的。上帝保佑我,我不得不处理这些事情,名字字段永远不应该被视为唯一的,它是血腥的危险。问问我爸爸Baash05 Sr 我假设当应用程序添加到组合框时,会有一个ID或一些数据集。请在地图上用这个。我的猜测是程序员将数据设置为名称的ID或指向包含名称的对象的指针。(个人对象/业务对象/学生对象…) 如果添加姓名的代码没有增加区分乔治·福曼和他的任何孩子的方法,那么就向老板争辩,它的实现应该改变,因为上帝保佑它应该改变
int aComboElementNo = myNameComboBox.GetCount();
for( int aIndex = 0; aIndex < aComboElementNo; aIndex++ )
{
int nameLocal = myNameComboBox.GetItemData( aIndex);
myPhoneComboBox.InsertString(aIndex, aPhoneList[namelocal] );
}
int-aComboElementNo=myNameComboBox.GetCount();
for(int-aIndex=0;aIndex
未获取u…..我没有索引(即使我有myNameComboBox中的索引,stringlist和combobox元素在combobox元素排序时不同步…)我使用的是CStringList而不是CList或CArray:(CList.Find不返回数字值(0,1,2,3,…),它是一个对象。它需要用于相同的列表。CArray.Find也执行相同的操作。相反,CArray.FindIndex返回索引(0,1,2,…)。我希望你现在明白了。然后用CStringArray而不是CStringListhmm,问题是如果我将其更改为CStringArray,许多其他地方也会受到影响。这两个列表是CStringList对象。我认为你的问题缺乏太多的上下文。你想用什么方法来做这件事?你想做什么?问题是t姓名列表已经实施。我不允许更改实施的内容…:(老兄,我提到了姓名和电话号码作为一个例子,不要把它们当回事。在我们的项目中,我们使用的是不同的东西,它们是独一无二的。请仔细阅读问题,并在回答之前理解提问者的意思。。。。
int aComboElementNo = myNameComboBox.GetCount();
for( int aIndex = 0; aIndex < aComboElementNo; aIndex++ )
{
int nameLocal = myNameComboBox.GetItemData( aIndex);
myPhoneComboBox.InsertString(aIndex, aPhoneList[namelocal] );
}