欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > ZW3D二次开发_模板表单_控件_添加回调

ZW3D二次开发_模板表单_控件_添加回调

2025/4/1 23:26:29 来源:https://blog.csdn.net/m0_46569197/article/details/146603979  浏览:    关键词:ZW3D二次开发_模板表单_控件_添加回调

        ZW3D的模板表单的控件即“ZW3D Template Widgets”下的控件,常用的如“ZsCc::Entity”和"Zscc::Point"等,使用它们时,ZW3D在内部实现了这些控件的最常用的回调机制(比如选中实体,选中点等)。

        在设计表单UI和tcmd文件时,我们需要设置这些控件的Id和回调命令名,以便准确触发回调

1.在表单UI中添加Id

    这里以“ZsCc::Point为例”,添加控件后,属性页的“Dynamic Properties”中默认有一个“Id”,此即该识别该控件的唯一id,可为任意正整数

        

2.在Tcmd编辑器中添加回调函数

        在tcmd编辑器中找到该点对应的元素,在属性->回调函数中输入回调命令名"ZsCcPoint_callback"(名称可自定义)。

3.在代码中编写及注册注销回调命令

   模板表单的控件的回调函数的函数签名为:

        int CallbackName(char* formName, int idField, int idData);

        其中第一个参数为表单名,第二个参数为触发此回调的控件,第三个参数为模板的数据容器的id

int ZsCcPoint_callback(char* formName, int idField, int idData)
{//获取选择点svxPoint point{};ZF_CALL(cvxDataGetPnt(idData, idField, &point));WriteMessage("当前点 = (%.2f,%.2f,%.2f)", point.x, point.y, point.z);return 0;
}

        在插件的入口和出口函数中注册和注销回调命令

//入口函数,函数名必须为“项目名”+“Init”,区分大小写
// Entry function, which must be named as "Project name" + "Init" ,case sensitive
extern "C" _declspec(dllexport) int 项目名Init(int format, void* data)
{ZF_CALL(cvxCmdFunc("ZsCcPoint_callback", ZsCcPoint_callback, VX_CODE_GENERAL));return 0;
}//出口函数,函数名必须为“项目名”+“Exit”,区分大小写
// Exit function, which must be named as "Project name" + "Exit" ,case sensitive
extern "C" _declspec(dllexport) int 项目名Exit(void)
{ZF_CALL(cvxCmdFuncUnload("ZsCcPoint_callback"));return 0;
}

4.效果

        用户在界面上选中点后,触发回调命令

        

        

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词