因为要根据设置属性的对象来决定CPropertySheet上应该显示哪些CPropertyPage,
所以我想在弹出属性设置对话框之前先把所有的CPropertyPage去掉,再根据要设置对象的属性加入不同的CPropertyPage//把所有的属性页全去掉
int nCount=propActivity.GetPageCount();
for(int i=0;i<nCount;i++)
{
propActivity.RemovePage(i);
}
//根据设置对象的属性增加相应的CPropertyPage
if(对象属性为1)
{
propActivity.AddPage(propActivity.page1);
}
if(对象属性为2)
{
propActivity.AddPage(propActivity.page2);
}可是为什么
for(int i=0;i<nCount;i++)
{
propActivity.RemovePage(i);
}
就有问题呢?
所以我想在弹出属性设置对话框之前先把所有的CPropertyPage去掉,再根据要设置对象的属性加入不同的CPropertyPage//把所有的属性页全去掉
int nCount=propActivity.GetPageCount();
for(int i=0;i<nCount;i++)
{
propActivity.RemovePage(i);
}
//根据设置对象的属性增加相应的CPropertyPage
if(对象属性为1)
{
propActivity.AddPage(propActivity.page1);
}
if(对象属性为2)
{
propActivity.AddPage(propActivity.page2);
}可是为什么
for(int i=0;i<nCount;i++)
{
propActivity.RemovePage(i);
}
就有问题呢?
2.删除任何东西的时候,都要从后向前删除,例如:
CArray <int, int> ints;
ints.Add(1); //1个,索引是0。
ints.Add(2); //2个,索引是0和1。
ints.RemoveAt(0); //现在只有1个啦,索引是0。
ints.RemoveAt(1); //错!没有索引是1的。
所以应该:
ints.RemoveAt(1); //现在只有1个啦,索引是0。
ints.RemoveAt(0); //全没有了。你用的是for循环,但出错原因相同。
2、谢谢!从后往前删除果然好了。