예제 #1
0
        /// <summary>
        /// Stores the size and position of the window.
        /// </summary>
        private void StoreWindowSize()
        {
            // 今の状態を記憶
            if (IsActive && !WinApi.IsZoomed(hWnd) && !WinApi.IsIconic(hWnd))
            {
                WinApi.RECT rect = new WinApi.RECT();

                // ウィンドウ位置とサイズ
                WinApi.GetWindowRect(hWnd, out rect);
                this.OriginalWindowPosition = new Vector2(rect.left, rect.top);
                this.OriginalWindowSize     = new Vector2(rect.right - rect.left, rect.bottom - rect.top);
            }
        }
예제 #2
0
        /// <summary>
        /// ウィンドウスタイルを監視して、替わっていれば戻す
        /// </summary>
        public void Update()
        {
            if (!IsActive)
            {
                return;
            }
            long style   = WinApi.GetWindowLong(hWnd, WinApi.GWL_STYLE);
            long exstyle = WinApi.GetWindowLong(hWnd, WinApi.GWL_EXSTYLE);

            if (!WinApi.IsIconic(hWnd) && !WinApi.IsZoomed(hWnd))
            {
                if (style != this.CurrentWindowStyle)
                {
                    WinApi.SetWindowLong(hWnd, WinApi.GWL_STYLE, this.CurrentWindowStyle);
                    WinApi.ShowWindow(hWnd, WinApi.SW_SHOW);
                }
                if (exstyle != this.CurrentWindowExStyle)
                {
                    WinApi.SetWindowLong(hWnd, WinApi.GWL_EXSTYLE, this.CurrentWindowExStyle);
                    WinApi.ShowWindow(hWnd, WinApi.SW_SHOW);
                }
            }
        }