//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);
}
【UG\NX二次开发】内部函数 重置按钮相关操作
于 2024-04-08 13:53:17 首次发布