LabVIEW程序前面板背景透明处理
LabVIEW程序自带的透明功能
LabVIEW自带的透明功能实现的是前面板整体透明度处理,我们可以通过VI 属性里面的外观属性进行配置,如下图所示:我们写一个简单程序,程序框图与前面板如下图所示:
在VI 属性里面的外观属性中自定义页面中配置透明度设置,如下图所示:
设置完成后,运行程序如下图所示:由于设置的50%的透明度,所以是半透明的前面板。
或者通过属性节点通过程序实时控制界面的透明度,如下图所示:实现功能是一样的,区别在于用属性节点的话,可以实现实时修改透明度的设置。
LabVIEW自带的透明度功能存在的缺陷在于它是对前面板的整体的透明度修改,无法实现对部分区域的进行透明化处理。
利用User32.dll实现透明功能
接下来我们介绍一种通过调用Windows系统自带的user32.dll函数库进行部分区域透明化处理。
程序框图如下:实现的功能是获取前面板背景色,然后通过user32.dll函数库中的SetLayeredWindowAttributs函数,对背景色部分进行透明处理。
由于这个处理过程需要对vi界面的边框隐藏掉,这个会影响窗口的移动,所以我们在程序后面新增了移动功能,也是用user32.dll函数库中的函数实现的。属性窗口如下图所示:
前面板如下图所示:运行前,我们可以看的前面板后面的遮住了程序框图;
运行后,如下图所示:此时我们看到背景区域全部透明了,控件或者修饰区域都是保留的,点击拖拽非透明部分,可以实现窗口的移动。
这里主要用的user32.dll中的函数功能实现的是在主界面里面对指定颜色进行透明处理,所以如果要对背景单独透明的话,我们可以将背景区域的颜色设置的比较特殊,避免出现同色值的其他区域也被透明了。这个区域划分是通过色值来确定的,所以只要色值比较合理,能实现的透明处理还是比较灵活的。