Detecting wx window locations on a system with multiple monitors

You didn’t mention which physical hardware configuration you have.
There are 2 possibilities:

1. The "Extended Desktop" in which the right half of the single

double-wide MSW Desktop is displayed on a second physical monitor.
This is simply treated as a single extra-wide display. If your
primary monitor’s horizontal screen size is, for example, 1280, then
any wx.Window’s horz position over 1280 has to be on the second
monitor.

2. There are **multiple physical display adapters/cards** on

your PC’s motherboard which display on separate physical monitors.

I am assuming that you are using configuration #2.  I can't locate a

"Place-this control-on-this-video-adapter-screen " function in
wxDisplay or wx.Display. If you already can do this why can’t you
save the display number associated with the control for later use ?

**Please share this technique with all of us.**

Ray

2. There are multiple physical display adapters/cardson your PC's motherboard which display on separate physical monitors.

This is the one I'm using

I am assuming that you are using configuration #2. I can't locate a "Place-this control-on-this-video-adapter-screen" function in wxDisplay or wx.Display. If you already can do >>this why can't you save the display number associated with the control for later use ?

This is an attribute I'm not familiar with.

  You didn't mention which physical hardware configuration you have.
There are 2 possibilities:

1. The "Extended Desktop" in which the right half of the single
double-wide MSW Desktop is displayed on a second physical monitor. This
is simply treated as a single extra-wide display. If your primary
monitor's horizontal screen size is, for example, 1280, then any
wx.Window's horz position over 1280 has to be on the second monitor.

2. There are *multiple physical display adapters/cards* on your PC's
motherboard which display on separate physical monitors.

In almost all cases I know of the OS still maps multiple video cards to the extended desktop metaphor.

I am assuming that you are using configuration #2. I can't locate a
"*Place-this control-on-this-video-adapter-screen*" function in
wxDisplay or wx.Display. If you already can do this why can't you save
the display number associated with the control for later use ?

*Please share this technique with all of us.*

wx.Display gives you all the information you need. You can get the number of displays and the geometry and client area of each of them. You can also get the display number that a particular window is positioned on. To place a window on a specific display you simply get that display's geometry and position the window within that rectangle.

  >>> import wx
  >>> for idx in range(wx.Display.GetCount()):
  ... d = wx.Display(idx)
  ... print d.IsPrimary(), d.GetGeometry()
  ...
  True (0, 0, 1920, 1200)
  False (-1600, 0, 1600, 1200)
  >>>

As you can see from the above, I have a 1920x1200 display located at the virtual (0,0) that is my primary display (where the OSX Dock and menubar are located) and a 1600x1200 display positioned on the left of the primary (indicated by the negative x position).

···

On 8/25/10 9:01 AM, Ray Pasco wrote:

--
Robin Dunn
Software Craftsman