NX二次开发 (C# / C++) 非模态消息框的自动关闭

nx的ufun函数中提供了一个非模态的消息框:UF_UI_display_nonmodal_msg() ,这个消息框不会阻塞主线程,并且可以指定消息框的弹出位置。 使用这个消息框,可以向用户展示一些中等重要的提示信息。非常好用 !  但是在主对话框结束时,这个消息框并不会随着对话框一起关闭,程序结束后还需要用户手动点击关闭就显得很笨, 我们可以通过WindowAPI来关闭它。

C#代码:

            //定义UFUN函数入口
            UFSession theUFsession = UFSession.GetUFSession();

            //消息框的标题建议特殊一些,因为WindowsAPI是通过窗口名称来找句柄的,名称过于普通可能会引起误杀
            theUfSession.Ui.DisplayNonmodalMsg("非模态消息框标题", "非模态消息框显示文本", 0);

            Thread.Sleep(1000); //线程休眠1000ms

            IntPtr wnd_handle = IntPtr.Zero;
            //由于非模态消息框可能会打开许多个相同窗口,所以使用while循环查找并Destroy
            while ((wnd_handle = Win32Api.WindowsAPI.FindWindow(null, "非模态消息框标题")) != IntPtr.Zero)
            {
                Win32Api.WindowsAPI.DestroyWindow(wnd_handle);
            }

C++代码:

	UF_UI_display_nonmodal_msg("非模态消息框标题" , "非模态消息框显示文本" , 0);
	Sleep(1000);
	HWND wnd_handle = 0;
	while( 0 != (wnd_handle = FindWindowA(0 , "非模态消息框标题")) )
	{
		DestroyWindow(wnd_handle);
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值