/// <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); } }
/// <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); } } }