If you don't want to work out calls to that API, you could potentially use Window::getMonitorArea for the form, and then call a recursive routine that looks at the 9 areas around that monitor by adding/subtracting the height/width of that monitor from the current top/left of the form, and then call Window::getMonitorArea. If it has the same values as a prior monitor, there's no monitor on that 'side' of the current monitor or you have previously processed that monitor. If it has different values to any prior monitor, it's a new monitor and you can then recurse back into the method with that new monitor as the 'starting point'. It's a bit of a kludge, but it should find 'all' the uniquely positioned monitors in short order and you can then give the users a combo of the 'available' monitors in that system.
Here's the results of this type of routine on my laptop with two monitors connected:
Code: Select all
Next monitor: left: -1920 top: 0 width: 1920 height: 1200
Next monitor: left: 0 top: 0 width: 1920 height: 1200
And here's what it looks like with all three monitors active:
Code: Select all
Next monitor: left: -1920 top: 15 width: 1920 height: 1200
Next monitor: left: -988 top: 1215 width: 1920 height: 1080
Next monitor: left: 0 top: 0 width: 1920 height: 1200
Cheers,
BeeJay.