Exemple #1
0
        public static void Initialize()
        {
            m_staticRECT = new WinApi.RECT(0, 0, 0, 0);

            List <WinApi.MONITORINFO> listMONITORINFO = new List <WinApi.MONITORINFO>();

            WinApi.MonitorEnumDelegate callback = (IntPtr hDesktop, IntPtr hdc, ref WinApi.RECT pRect, int d) =>
            {
                var varInfo = new WinApi.MONITORINFO();

                varInfo.cbSize = sizeof(int) * 4 * 2 + sizeof(int) * 2;

                if (WinApi.GetMonitorInfo(hDesktop, ref varInfo) == false)
                {
                    return(false);
                }

                var varMONITORINFO = varInfo.rcMonitor;

                if (varMONITORINFO.Left < m_staticRECT.Left)
                {
                    m_staticRECT.Left = varMONITORINFO.Left;
                }

                if (varMONITORINFO.Top < m_staticRECT.Top)
                {
                    m_staticRECT.Top = varMONITORINFO.Top;
                }

                if (varMONITORINFO.Right > m_staticRECT.Right)
                {
                    varMONITORINFO.Right = m_staticRECT.Right;
                }

                if (varMONITORINFO.Bottom > m_staticRECT.Bottom)
                {
                    varMONITORINFO.Bottom = m_staticRECT.Bottom;
                }

                listMONITORINFO.Add(varInfo);

                return(true);
            };

            if (WinApi.EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, callback, 0))
            {
                g_staticMONITORINFO = listMONITORINFO.ToArray();
            }
            else
            {
                g_staticMONITORINFO = new[]
                {
                    new WinApi.MONITORINFO()
                    {
                        rcMonitor = Screen.PrimaryScreen.Bounds,
                        rcWork    = Screen.PrimaryScreen.WorkingArea,
                    }
                };
            }
        }
Exemple #2
0
        public static void FillMonitor(Form form, WinApi.MONITORINFO monitorInfo)
        {
            var varMONITORINFO = monitorInfo.rcMonitor;

            int iX = varMONITORINFO.Left - m_staticRECT.Left;
            int iY = varMONITORINFO.Top - m_staticRECT.Top;

            WinApi.MoveWindow(form.Handle, iX, iY, varMONITORINFO.Width, varMONITORINFO.Height, false);
        }