【UG\NX二次开发】完美隐藏UI控件句柄 (无需重叠控件,控件在隐藏时仍可使用) - 结合WINAPI -(ShowWindow(UGUIID, SW_HIDE))

1.打开你要隐藏的控件所在的界面(打开程序,显示Block UI对话框)

2.打开通过UIFW Spy(当前显示的Block UI对话框的分析的信息)找到当前控件类名称(以指定方位控件作为演示示例)【UG\NX二次开发】完美隐藏UI控件句柄 (无需重叠控件,控件在隐藏时仍可使用) - 结合WINAPI -(ShowWindow(UGUIID, SW_HIDE))_第1张图片【UG\NX二次开发】完美隐藏UI控件句柄 (无需重叠控件,控件在隐藏时仍可使用) - 结合WINAPI -(ShowWindow(UGUIID, SW_HIDE))_第2张图片

3.核心部分代码

#include 
#include 

UF_initialize();

BOOL CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam) 
{ 
	char s[200] = { 0 };
	memset(s, 0, 200);
	GetWindowTextA(hwndChild, s, 200);//获取当前hwndChild的名称

	//UF_UI_open_listing_window();//调试用
	//UF_UI_write_listing_window(s);
	//UF_UI_write_listing_window("\n");

	if (strcmp(s,"UGS::UICOMP_manip")==0)//将名称与类名称进行匹配,找到控件
		ShowWindow(hwndChild, SW_HIDE); //设置隐藏

	return TRUE;
}

/*隐藏指定方位控件UI*/
void hide_manip_UI()
{
    HWND hd = GetForegroundWindow();     //得到当前进程窗口
	EnumChildWindows(hd,EnumChildProc,0);//遍历窗口中所有子控件(在EnumChildProc回调中进行处理)
}

int main()
{
	hide_manip_UI();
}

UF_terminate();

4.效果(隐藏了也可拖拽)

【UG\NX二次开发】完美隐藏UI控件句柄 (无需重叠控件,控件在隐藏时仍可使用) - 结合WINAPI -(ShowWindow(UGUIID, SW_HIDE))_第3张图片

参考博客:

NX二次开发-BlockUI查看界面的控件属性_block ui对话框的创建方法-CSDN博客

EnumChildWindows()函数的作用-CSDN博客

你可能感兴趣的:(NX二次开发专栏,NX二次开发)