我在DLGA中使用DoModal()方式生成了DLGB。
DLGB中还有一个CPtrList类型的成员m_pSendList;DLGB中有一个按钮A,每按一下。
往m_pSendList中添加一个成员。
但我在DLGB中按OK返回DLGA之后,我在DLGA中得不到正确的m_pSendList所含的成员内容。但成员数量是对的。
不明白是怎么回事,是不是我CPtrList使用有问题啊?
DLGB中还有一个CPtrList类型的成员m_pSendList;DLGB中有一个按钮A,每按一下。
往m_pSendList中添加一个成员。
但我在DLGB中按OK返回DLGA之后,我在DLGA中得不到正确的m_pSendList所含的成员内容。但成员数量是对的。
不明白是怎么回事,是不是我CPtrList使用有问题啊?
将CPtrList类型的成员m_pSendList移至DLGA中,
在DLGB中使用AfxGetApp()->m_pMainWnd得到DLGA的指针,
使用DLGA的指针对m_pSendList进行添加成员。
但内容还是不对,真奇怪!我用DLGA的指针列表指着DLGB中的对象,DLGB销毁了,
DLGA的指针列表指着数据也会变化吗?
我用CTypedPtrList替换CPtrList出错。
template< class BASE_CLASS, class TYPE >
class CTypedPtrList : public BASE_CLASS
-------------------------------------------------
参数说明:
BASE_CLASS:链表的基类类型,必须是CObList 或者 CPtrList。基类如果是CObList,链表可以串行化,CPtrList则不行。
TYPE:链表元素的类型
-------------------------------------------------
比如:
typedef CTypedPtrList<CObList, CmyObj*> CMyList;
往m_pSendList中添加一个成员。你是如何构造你的成员的,如果是在栈中,那肯定不行