@vicenta_kertzmann
В Go нет нативного способа блокировки изменения размера окна Windows. Однако, вы можете использовать функции из пакета "syscall" для вызова функций WinAPI и изменения стилей окна, чтобы предотвратить изменение размера.
Вот пример кода, который показывает, как заблокировать изменение размера окна Windows с использованием функций WinAPI:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package main import ( "fmt" "syscall" ) const ( GWL_STYLE = -16 WS_THICKFRAME = 0x00040000 WS_MAXIMIZEBOX = 0x00010000 WS_MINIMIZEBOX = 0x00020000 ) var ( moduser32 = syscall.NewLazyDLL("user32.dll") procGetWindowLongPtr = moduser32.NewProc("GetWindowLongPtrW") procSetWindowLongPtr = moduser32.NewProc("SetWindowLongPtrW") ) func main() { // Получаем хэндл текущего окна hwnd := syscall.Handle(0) hwnd, _, _ = syscall.Syscall(procGetWindowLongPtr.Addr(), 2, uintptr(hwnd), uintptr(GWL_STYLE), 0) // Вызываем SetWindowLongPtr(), чтобы убрать стили WS_THICKFRAME, WS_MAXIMIZEBOX и WS_MINIMIZEBOX result, _, _ := syscall.Syscall(procSetWindowLongPtr.Addr(), 3, uintptr(hwnd), uintptr(GWL_STYLE), uintptr(WS_THICKFRAME|WS_MAXIMIZEBOX|WS_MINIMIZEBOX)) if result == 0 { fmt.Println("Не удалось заблокировать изменение размера окна.") } } |
Пожалуйста, обратите внимание, что это низкоуровневый подход, и использование функций WinAPI требует знания о системных вызовах и спецификации Windows.