Что нового

Окна, Диалоги Как запретить окну менять размеры при перемещении за границу монитора

smsgeorge

Новичок
Сообщения
63
Репутация
0
Здравствуйте! Как запретить окну менять размеры, при перемещении окна за границу экрана. Перемещать могу за любую часть окна.
Что происходит - Когда перемещаю окно, оно меняет размеры .
Код:
global $mainwindow_shabloni_cfz = GUICreate("Привет мир", 600, 600,100, 120, ($GUI_SS_DEFAULT_GUI - $WS_CAPTION), ($WS_EX_TOPMOST+$WS_EX_CONTROLPARENT))

Снимок.JPG
Снимок1.JPG
Сообщение автоматически объединено:

Как от этого избавиться?
Сообщение автоматически объединено:

Если написал некорректно или требует пояснения, пожалуйста напишите. Я напишу для вас, чтобы было понятнее.
Сообщение автоматически объединено:

Когда зеленое окно передвигаешь, взяв окно за любую часть, когда оно заходит за границу экрана и я отпускаю мышку, оно меняет размеры. Как сделать, чтобы оно не меняло размеры?
 
Последнее редактирование:

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Когда зеленое окно передвигаешь, взяв окно за любую часть, когда оно заходит за границу экрана и я отпускаю мышку, оно меняет размеры. Как сделать, чтобы оно не меняло размеры?
Создайте окно которое не может менять размеры, тогда прикрепление окон работать не будет.

Если написал некорректно или требует пояснения, пожалуйста напишите. Я напишу для вас, чтобы было понятнее.
Сперва сделайте пример который воспроизводит проблему.

Например, если взять строку кода из вашего сообщения, получиться что-то такое:
Код:
#include <GUIConstants.au3>

GUICreate("Привет мир", 600, 600, 100, 120, ($GUI_SS_DEFAULT_GUI - $WS_CAPTION), ($WS_EX_TOPMOST + $WS_EX_CONTROLPARENT))
GUISetState()

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Не сложно ведь? Но это не воспроизводит проблему на Windows 10 20H2 (x64) и 7 SP1 (x64)
Но я думаю вы даже это не проверили.

Для начала не используйте арифметические операторы для стилей, используйте побитовые функции Bit* и возможно проблема решиться сама собой. Если вам нужно полностью безрамочное окно, вы можете заменить ($GUI_SS_DEFAULT_GUI - $WS_CAPTION) на $WS_POPUP.
Так же ищите где у вас в коде изменяется стиль окна с помощью функций _WinAPI_SetWindowLong/GUISetStyle, либо где окно пересоздается с другими стилями.
 
Последнее редактирование:
Автор
S

smsgeorge

Новичок
Сообщения
63
Репутация
0
Всё из выше перечисленного, не помогло. Виндовс 10. Окно просто создается, не перерисовывается. Вот как онон создалось, я его передвигаю, без всяких дополнительных функций.
 

xXx

╚{■_■}╗
Меценат
Сообщения
248
Репутация
95
Сперва сделайте пример который воспроизводит проблему.
Присоединяюсь. И нам покажите.
Это кстати полезно, потому что при создании такого примера вы возможно сами уже вычислите проблему.
 
Последнее редактирование:
Верх