|

楼主 |
发表于 2018-5-22 14:31:02
|
显示全部楼层
Syc,你好,我用你给我的这个类生成自己的程序,用以下代码来添加数据,但是运行过程中m_parent一直为NULL,因此出来的树状数据全部在根目录下,可能是指针传递过程中地址不对,请你帮忙看一下。- void CMySuperGrid::ChaXunListTreeDaPan(CTreeItem *m_parent, SOCKET sock, CStringA m_text)
- {
- if (m_text == "OVER")
- return;
- CStringA shuju[8], s;
- char recvBuf[100];
- int k, j, str;
- k = m_text.Find("\n");
- j = 0;
- str = 0;
- while (str < m_text.GetLength() - 1)
- {
- shuju[j] = m_text.Mid(str, k - str);
- str = k + 1;
- j++;
- k = m_text.Find("\n", str);
- }
- CItemInfo *lp = new CItemInfo;
- lp->SetItemText((CString)(shuju[0]));
- lp->AddSubItemText((CString)shuju[1]);
- lp->AddSubItemText((CString)shuju[3]);
- lp->AddSubItemText((CString)shuju[4]);
- lp->AddSubItemText((CString)shuju[5]);
- if (m_parent != NULL)
- {
- CItemInfo *lp1 = new CItemInfo;
- lp1 = GetData(m_parent);
- if (lp1->GetItemText() != (CString)shuju[0])
- {
- CTreeItem * pRoot = GetParentItem(m_parent);
- ChaXunListTreeDaPan(pRoot, sock, m_text);
- }
- else
- {
- CTreeItem * pRoot = InsertItem(m_parent, lp);
- send(sock, "OK", strlen("OK") + 1, 0);
- recv(sock, recvBuf, 100, 0);
- s.Format("%s", recvBuf);
- ChaXunListTreeDaPan(pRoot, sock, s);
- }
- }
- else
- {
- lp->SetImage(4);
- CTreeItem * pRoot = InsertRootItem(lp);//previous on N.Y.P.D we call it CreateTreeCtrl(lp)
- send(sock, "OK", strlen("OK") + 1, 0);
- recv(sock, recvBuf, 100, 0);
- s.Format("%s", recvBuf);
- ChaXunListTreeDaPan(pRoot, sock, s);
- }
- }
复制代码 |
|