Move application to second monitor in MFC

I'm developing an application in VS2008 VC++.net I want to move the application to the secondary monitor. Not by clicking and dragging using mouse. Is there any function like MoveToMonitor by pressing the button or any shortcut keys. Then it should move to secondary monitor.

26.3k 9 9 gold badges 52 52 silver badges 76 76 bronze badges asked Mar 25, 2010 at 6:15 915 4 4 gold badges 25 25 silver badges 55 55 bronze badges

I'm answering based on the assumption that you're asking about functions you can use in programming. If you're asking about shortcut keys that Windows provides, then this probably belongs on SuperUser.

Commented Mar 25, 2010 at 6:24

2 Answers 2

You should be able to call GetMonitorInfo and move your window to with in that.

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