You should be able to call GetMonitorInfo and move your window to with in that.
See here ' MFC Example Multiple monitor support with GetSystemMetrics EnumDisplayMonitors and GetMonitorInfo' for more info.
Using the code CMointor is a basic MFC class that allows you to safely use the multiple-monitor API on any Win32 platform. There are three classes in this library: CMonitors represents the collection of monitors currently attached to the system and wraps the EnumDisplayMonitors API function. Collapse Copy Code //CMonitors' interface CMonitor GetMonitor( const int index ) const; int GetCount() const; //returns the monitor closest to the specified item static CMonitor GetNearestMonitor( const LPRECT lprc ); static CMonitor GetNearestMonitor( const POINT pt ); static CMonitor GetNearestMonitor( const CWnd* pWnd ); //is the specificed item visible on any monitor static BOOL IsOnScreen( const POINT pt ); static BOOL IsOnScreen( const CWnd* pWnd ); static BOOL IsOnScreen( const LPRECT lprc ); //returns the rectangle encompassing all monitors static void GetVirtualDesktopRect( LPRECT lprc ); //determines whether the given handle is a valid monitor handle static BOOL IsMonitor( const HMONITOR hMonitor ); static CMonitor GetPrimaryMonitor(); static BOOL AllMonitorsShareDisplayFormat(); static int GetMonitorCount(); CMonitor is a wrapper around an HMONITOR handle (returned from EnumDisplayMonitors) and the GetMonitorInfo function. With CMonitor you can get at the characteristics of a given monitor. Collapse Copy Code //The interface of CMonitor void Attach( const HMONITOR hMonitor ); HMONITOR Detach(); void ClipRectToMonitor( LPRECT lprc, const BOOL UseWorkAreaRect = FALSE ) const; void CenterRectToMonitor( LPRECT lprc, const BOOL UseWorkAreaRect = FALSE ) const; void CenterWindowToMonitor( CWnd* const pWnd, const BOOL UseWorkAreaRect = FALSE ) const; //creates a device context for the monitor - the client is responsible for // DeleteDC HDC CreateDC() const; void GetMonitorRect( LPRECT lprc ) const; //the work area is the monitor rect minus the start bar void GetWorkAreaRect( LPRECT lprc ) const; void GetName( CString& string ) const; int GetBitsPerPixel() const; //determines if the specified item on the monitor BOOL IsOnMonitor( const POINT pt ) const; BOOL IsOnMonitor( const CWnd* pWnd ) const; BOOL IsOnMonitor( const LPRECT lprc ) const; BOOL IsPrimaryMonitor() const; BOOL IsMonitor() const; CMonitorDC is a CDC derived class that represents a monitor specific device context. I haven't really gone to far with this class but it seemed like a logical part of the library. Known Limitations CMonitor and CMonitors rely on the assumption that a monitor handle does not change. This has proved to be a safe assumption empirically but isn't nessecarily a guarantee.
If you are on Window 7 then the moving windows between monitors is Windows-Arrow