LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How can I determine that an indicator is hidden (partly or fully) by any other application windows?

I have some charts in my application. One of them controls the others by XScale.Range. If the "control chart" is not visible because of hidding by other windows then the XScale.Range is not updated when new data is sent to them. If I know that the chart is not visible then I do not trust in the Xscale.Range value. This is why I'd like to know the visibility status of an indicator... 🙂
0 Kudos
Message 1 of 4
(2,702 Views)
You can use the property nodes to know the state of your indicators as well as much other information about these.

if you want to know information of an indicator pertaining to other VI you need to create a reference of the inidicador and to send it towards VI where you used this information
Download All
0 Kudos
Message 2 of 4
(2,702 Views)
Hi Tomi,

You are not asking for something that is easy.

First,

Try opening a reference to the VI in question and use a property node to get the "FP.IsFrontmost" property. This boolean will tell if the Front Panel is on top of the pile.

I AM NOT SURE if that will be false if there is another (non-LV) application on top.

If the boolean does not reflect this state,...

Then you will have to use the functions in "WINUTIL.LLB" (search for lvwutil32.zip) to get the state, bounds, and position of all of the windows and do the math to determine if there is an overlap. If you want to just for an over lap of the graph, the math get a bit more complicated.

I did mention that this was not going to be easy didn't I?

Trying to help,

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 3 of 4
(2,702 Views)
Hi Ben,

Thanks for the answer. As You presumed the "FP.IsFrontmost" propety does not indicate that the window or part of the window is overlapped by any other application window (eg.: explorer).

I just downloaded the lvwutil32.zip to investigate the possibilities.

I supposed there is another easier way to get an indicator /control "visibility status" since the LV knows it during updating the panel (but it looks it is not public for programmers).


Thanks again,
Tomi
0 Kudos
Message 4 of 4
(2,702 Views)