【UG\NX二次开发】内部函数 重置按钮相关操作

//NX8.5:设置重置按钮显示或隐藏(initialize_cb中使用)
void hideBlockUIResetButton(BlockStyler::BlockDialog* dialog, bool show) {

	HMODULE syss = LoadLibrary(L"libsyss");
	HMODULE uifw = LoadLibrary(L"libuifw");

	typedef void* (*TagToPtr_fp_t)(tag_t);
	typedef void(*SetResetShow_fp_t)(void*, bool);

	TagToPtr_fp_t TagToPtr = NULL;
	SetResetShow_fp_t SetResetShow = NULL;

	TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, "?TAG_ask_pointer_of_tag@@YAPEAXI@Z");
	SetResetShow = (SetResetShow_fp_t)GetProcAddress(uifw, "?set_reset_visibility@UICOMP@UGS@@QEAAX_N@Z");
	

	if (SetResetShow != NULL && TagToPtr != NULL) 
	{
		UIBlock* topui = dialog->TopBlock();
		SetResetShow(TagToPtr(topui->Tag()), show);//设置重置按钮显隐
	}
	FreeLibrary(uifw);
	FreeLibrary(syss);
}

//NX8.5:调用界面重置
void callBlockUIResetButton(BlockStyler::BlockDialog* dialog)
{
	HMODULE ugui = LoadLibrary(L"libugui");
	HMODULE jam = LoadLibrary(L"libjam");
	HMODULE uifw = LoadLibrary(L"libuifw");

	typedef void* (*UIFW_ask_uifw_p_t)(void);
	typedef void* (*JAM_lookup_tag_p_t)(tag_t);
	typedef void (*dlx_perform_reset_f_p_t)(void*, void*);
	UIFW_ask_uifw_p_t Call_UIFW_ask_uifw = NULL;
	JAM_lookup_tag_p_t Call_JAM_lookup_tag = NULL;
	dlx_perform_reset_f_p_t CallDlxPerformReset = NULL;

	Call_UIFW_ask_uifw = (UIFW_ask_uifw_p_t)GetProcAddress(ugui, "?UIFW_ask_uifw@@YAPEAVUIFW@UGS@@XZ");
	Call_JAM_lookup_tag = (JAM_lookup_tag_p_t)GetProcAddress(jam, "JAM_lookup_tag");
	CallDlxPerformReset = (dlx_perform_reset_f_p_t)GetProcAddress(uifw, "?start_adopted_dialog@UIFW@UGS@@UEAAXPEAVUICOMP@2@@Z");

	if (Call_UIFW_ask_uifw != NULL && Call_JAM_lookup_tag != NULL && CallDlxPerformReset != NULL)
	{
		UIBlock* topui = dialog->TopBlock();
		CallDlxPerformReset(Call_UIFW_ask_uifw(), Call_JAM_lookup_tag(topui->Tag()));//界面重置
	}
	FreeLibrary(ugui);
	FreeLibrary(jam);
	FreeLibrary(uifw);
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

社恐猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值