win32 api 获取窗口中所有控件_LabVIEW UI设计之制作自定义可移动窗口

本文介绍了如何使用LabVIEW自定义窗口样式,以替代传统的Windows窗口,包括隐藏标题栏、滚动条,禁用用户窗口操作,并通过win32 api实现自定义窗口的移动功能。通过在自定义窗口标题栏放置透明控件,结合FindWindow, ReleaseCapture和SendMessageA等API,实现了类似Windows窗口的移动体验。" 111553151,10293304,ESP32-A1S离线语音识别:控制LED灯实战,"['ESP32开发', '语音识别', '嵌入式硬件', '物联网(IoT)', 'AIoT解决方案']
摘要由CSDN通过智能技术生成

LabVIEW默认窗口采用的是Windows风格窗口,如下图所示Windows 7下的LabVIEW窗口样式。

c41f72773946bb8d75299144a9bf368e.png

现在即使是专业性较强的测控软件,对用户UI界面的要求也越来越高,千篇一律的Windows窗口样式难免让人产生审美疲劳,本文介绍一种自定义可移动窗口的设计,替换传统的Windows窗口样式。

  1. 打开VI属性,在Window Appearance(窗口外观)页面上,选择Custom(自定义),编辑窗口样式,如下图,隐藏Windows标题栏、滚动条,禁用用户关闭、调整、最小化窗口的选项,Windows Behavior设置成Floating(浮动)。

    4ef35e76a220590a6426bc8180b7dbec.png

  2. 设置完成VI属性后,在VI前面板编辑自定义的窗口外观,demo案例采用装饰控件选板中的控件制作了一个扁平化的深蓝色窗口外框,并添加了窗口关闭的自定义boolean控件,如下图

    a9246e2e266e183c1d96a560837dd8ec.png

  3. 将VI窗口大小调整至绘制的自定义窗口外框大小,可以查看窗口效果,简单的编辑就比默认的Windows窗口样式效果提升很多.

    280f37db68809977d9495a70ddf92e24.png

  4. 前三步只是完成了窗口外观样式,但这样的窗口还缺乏默认Windows窗口的一个重要功能——窗口移动功能。如何让自定义的窗口点击窗口标题栏达到默认Windows窗口的窗口移动功能呢?查询了相关资料,发现Use32.dll中包含的几个API可实现该功能。

    a.首先,在自定义的窗口标题栏上放置一个透明的控件,demo中放置的是透明的字符串显示控件,可做窗口名称的显示。

bbd84b49ef2a446910fb701eaa16c6b1.png

    b.然后,切换至程序框图界面,添加如下VI代码。代码的第一部分,是采用User32 API中的FindWindow通过名称获取窗口引用。第二部分,创建放置在自定义窗口的透明字符串显示控件的“Mouse Down(鼠标按下)”事件,并放置User32 API中的ReleaseCapture和SendMessageA函数并设置相关参数,参数含义可自行查阅函数说明,函数接口连接设置如下图。

49775ae98869fe44cb9d2624aa317506.png

编辑完成的VI自定义可移动窗口效果如下:

038385cd720e47887222793e97049bdf.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值