返回介绍

对于链表的操作

发布于 2023-08-09 23:10:33 字数 2088 浏览 0 评论 0 收藏 0

可以看到的是,链表支持如,整形、句柄、指针、字符串的存储,而在存储中,对于每一个节点的类型设置“restype”必须与存储的数据类型(mds_u_val联合下的数据类型)对应,如此实例中的设置扩展数据代码段:

	 resbuf* pExDataRb = nullptr;
	 std::vector <resbuf*> vBuf;
	 resbuf* pLastNode = nullptr;
	 auto CreateNewXData = [&]() {

		 pLastNode = pExDataRb = acutBuildList(AcDb::kDxfRegAppName, sTemp, 0);

		 m_mRealNum.GetWindowTextW(sTemp);
		 if (sTemp.GetLength())
		 {
			 auto pBuf = acutBuildList(AcDb::kDxfXdReal, _wtof(sTemp), 0);
			 pLastNode->rbnext = pBuf;
			 pLastNode = pLastNode->rbnext;
			 vBuf.push_back(pBuf);
		 }
		 m_mShortNum.GetWindowTextW(sTemp);
		 if (sTemp.GetLength())
		 {
			 auto pBuf = acutBuildList(AcDb::kDxfXdInteger16, _wtoi(sTemp), 0);
			 pLastNode->rbnext = pBuf;
			 pLastNode = pLastNode->rbnext;
			 vBuf.push_back(pBuf);
		 }
		 m_mLongNum.GetWindowTextW(sTemp);
		 if (sTemp.GetLength())
		 {
			 auto pBuf = acutBuildList(AcDb::kDxfXdInteger32, _wtoi(sTemp), 0);
			 pLastNode->rbnext = pBuf;
			 pLastNode = pLastNode->rbnext;
			 vBuf.push_back(pBuf);
		 }
		 m_mString.GetWindowTextW(sTemp);
		 if (sTemp.GetLength())
		 {
			 auto pBuf = acutBuildList(AcDb::kDxfXdAsciiString, sTemp, 0);
			 pLastNode->rbnext = pBuf;
			 pLastNode = pLastNode->rbnext;
			 vBuf.push_back(pBuf);
		 }

		 CString sTempY, sTempZ;
		 {
			 m_m3dVectorX.GetWindowTextW(sTemp);
			 if (!sTemp.GetLength())
				 return;
			 m_m3dVectorY.GetWindowTextW(sTempY);
			 if (!sTempY.GetLength())
				 return;
			 m_m3dVectorZ.GetWindowTextW(sTempZ);
			 if (!sTempZ.GetLength())
				 return;
			 mds_real vVec[] = { _wtof(sTemp),_wtof(sTempY),_wtof(sTempZ) };
			 auto pBuf = acutBuildList(AcDb::kDxfXdXCoord, vVec, 0);
			 pLastNode->rbnext = pBuf;
			 pLastNode = pLastNode->rbnext;
			 vBuf.push_back(pBuf);
		 }
	 };

上述代码段中,我们再次使用到了acutBuildList宏,在构造选择集的介绍文章中我们已对该宏进行了介绍,再次不再赘述。而在构造扩展数据时,大致的结构如下:

blob.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文