.Net Automation: WindowMove positioning is strange
Posted: Wed Jun 01, 2022 1:55 pm
Hello
I'm still improving on my MI Pro mesurement automation with VB .Net
What a great tool !
Incredibly fexible and powerful already.
Thanks for all the late additions, by the way.
I encountered an issue though, with automation
I'm now trying to organize and arrange DDP windows automatically from .Net
My goal is to start from some basic Panel setings (one for THD, one for IMD SMPTE, one for Multitone, and so on) and programatically arrange (hide/show/move) the DDPs according to the specific test (DAC, analog DUT, ADC)
My problem is the following:
I have a hard time to understand how the X/Y/W/H works.
As an example, on a FHD screen:
MIPro.SetWindowPosition(MIPro.nWindowID.WND_OSCILLOSCOPE, 1, 1, 1052, 242, True)
will position the Oscilloscope in the top left of the work window.
And then,
MIPro.SetWindowPosition(MIPro.nWindowID.WND_SPECTRUM_ANALYZER, 1, 243, 1052, 704, True) ' Spectrum
position the Specrum analyzer window just below it.
So far so good (except that I don't see 1 pixel margins outside of the windows)
But I then expect
MIPro.SetWindowPosition(MIPro.nWindowID.WND_DDP_VIEWER + 8, 1054, 1, 330, 161, True) 'SINAD
to position the UDDP9 vertically at the same position than the Oscilloscope, as they use the same Y value
Unfortunately, that doesn't seem to work: Positioning is at the top of the Menu line
Also, horizontally, it seems the Oscilloscope and Spectrum windows - which include a border, are sized at the requested size + the border size.
And therefore, even horizontal positionning for the DDP is not behaving as expected...
Could you please have a look, when times allow ?
Have a good day
(By the way, I also added new whishes
Being able to retrieve and set a DDP Alias would be great.
Also READING the current window position and state would be great.)
I'm still improving on my MI Pro mesurement automation with VB .Net
What a great tool !
Incredibly fexible and powerful already.
Thanks for all the late additions, by the way.
I encountered an issue though, with automation
I'm now trying to organize and arrange DDP windows automatically from .Net
My goal is to start from some basic Panel setings (one for THD, one for IMD SMPTE, one for Multitone, and so on) and programatically arrange (hide/show/move) the DDPs according to the specific test (DAC, analog DUT, ADC)
My problem is the following:
I have a hard time to understand how the X/Y/W/H works.
As an example, on a FHD screen:
MIPro.SetWindowPosition(MIPro.nWindowID.WND_OSCILLOSCOPE, 1, 1, 1052, 242, True)
will position the Oscilloscope in the top left of the work window.
And then,
MIPro.SetWindowPosition(MIPro.nWindowID.WND_SPECTRUM_ANALYZER, 1, 243, 1052, 704, True) ' Spectrum
position the Specrum analyzer window just below it.
So far so good (except that I don't see 1 pixel margins outside of the windows)
But I then expect
MIPro.SetWindowPosition(MIPro.nWindowID.WND_DDP_VIEWER + 8, 1054, 1, 330, 161, True) 'SINAD
to position the UDDP9 vertically at the same position than the Oscilloscope, as they use the same Y value
Unfortunately, that doesn't seem to work: Positioning is at the top of the Menu line
Also, horizontally, it seems the Oscilloscope and Spectrum windows - which include a border, are sized at the requested size + the border size.
And therefore, even horizontal positionning for the DDP is not behaving as expected...
Could you please have a look, when times allow ?
Have a good day
(By the way, I also added new whishes
Being able to retrieve and set a DDP Alias would be great.
Also READING the current window position and state would be great.)