I don't see the point position data that can be returned in "gettagdata"，I hope I can get the center position of the selected point or point group. At present, I have set a link window in the dialog box. I hope I can drag my point group label to reach the link, and then calculate a center according to the linked point group (similar to forming a new bound and then getting the center). Plz
case IDC_LINKBOX2 :
// Test can get response
you must retrieve the BaseSelect from the tag with GetBaseSelect and check every point if they are selected or not and calculate the mean.
You also must retrieve the object the tag is attached to and the point positions. This can be done with GetObject and GetPointR. In that case, I am using GetPointR because i do not want to modify the values.
// get point selection tag
LinkBoxGui* linkGui = static_cast<LinkBoxGui*>(FindCustomGui(IDC_LINKBOX2, CUSTOMGUI_LINKBOX));
if (linkGui == nullptr)
BaseDocument* doc = GetActiveDocument();
if (doc == nullptr)
SelectionTag* selectionTag = (SelectionTag*)linkGui->GetLink(doc);
if (selectionTag == nullptr)
ApplicationOutput("the field is empty");
// stop if the selection tag is not a point selection but we still return true
PointObject* op = ToPoly(selectionTag->GetObject());
if (op == nullptr)
const Vector* padr = op->GetPointR();
const Int32 pointCount = op->GetPointCount();
BaseSelect* selection = selectionTag->GetBaseSelect();
// use the LminMax class to retrieve selection information
// calculate the mean of all points
for (Int32 pointIndex = 0; pointIndex < pointCount; pointIndex++)
mean += padr[pointIndex];
mean /= selection->GetCount();
ApplicationOutput(" mean is @", mean);
@m_magalhaes Hi,m_magalhaes, I want to call your name again, because the last question is also your answer and has perfectly solved my problem. You are my God. Thank you very much.
Can I ask another question? Last night, I found that my tag name may be unclear. I want to use my own name. But gettagdata is not a member of baselist2d. I tried to browse the API, but I couldn't find the answer. For example, findcustomgui, which can be clearly known in the SDK, belongs to getdialog
You mean GetTagDataR or GetTagDataW?? They are part of BaseObject.
I am not sure to follow you.
@m_magalhaes Thank you, I think I understand