void winPosChange(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam) { long lStyle = WinAPI.GetWindowLong(handle, GWL_STYLE); lStyle &= ~(WS_CAPTION | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU); SetWindowLongPtr(handle, GWL_STYLE, lStyle); long lExStyle = WinAPI.GetWindowLong(handle, GWL_EXSTYLE); lExStyle &= ~(WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE); SetWindowLongPtr(handle, GWL_EXSTYLE, lExStyle); WinAPI.SetWindowPos(handle, HWND_BOTTOM, 0, -40, fWidth, fHeight, (int)(SetWindowPosFlags.SWP_FRAMECHANGED | SetWindowPosFlags.SWP_NOMOVE | SetWindowPosFlags.SWP_NOSIZE | SetWindowPosFlags.SWP_NOZORDER | SetWindowPosFlags.SWP_NOOWNERZORDER)); WINDOWPOS wndPos = WINDOWPOS.FromMessage(hWnd, msg, wParam, lParam); wndPos.flags = wndPos.flags | SetWindowPosFlags.SWP_NOZORDER; wndPos.UpdateMessage(hWnd, msg, wParam, lParam); ShowWindow(handle, (int)ShowWindowFlags.SW_SHOWMAXIMIZED); }
static void winPosChange(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam) { if (ShowWindow(handle, (int)ShowWindowFlags.SW_SHOWMAXIMIZED)) { if (borderless) { long lStyle = WinAPI.GetWindowLong(handle, GWL_STYLE); lStyle &= ~(WS_CAPTION | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU); SetWindowLongPtr(handle, GWL_STYLE, lStyle); long lExStyle = WinAPI.GetWindowLong(handle, GWL_EXSTYLE); lExStyle &= ~(WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE | WS_EX_APPWINDOW); SetWindowLongPtr(handle, GWL_EXSTYLE, lExStyle); } if (keepBottomMost) { WINDOWPOS wndPos = WINDOWPOS.FromMessage(hWnd, msg, wParam, lParam); wndPos.flags = wndPos.flags | SetWindowPosFlags.SWP_NOZORDER; wndPos.UpdateMessage(hWnd, msg, wParam, lParam); } } }