Форум: "WinAPI";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизКак узнать, что форму перемещают ? Найти похожие ветки
← →
Miau © (2004-01-23 19:58) [0]Хочется не дать форме уйти за пределы некоего прямоугольника, т.е. не дать пользователю мышью перетащить её куда не следует.
← →
Юрий Зотов © (2004-01-23 20:31) [1]WM_WINDOWPOSCHANGING
В структуре WINDOWPOS проверяем и корректируем координаты (либо выставляем флаг SWP_NOMOVE), потом вызываем inherited (либо не вызываем - тогда сообщение не будет обработано).
← →
Miau © (2004-01-23 20:45) [2]Спасибо!
Если Вам не трудно, не могли бы Вы набросать примерчик небольшой? Хотя бы пару основных строк, а то я с сообщениями толком не сталкивался.
← →
Юрий Зотов © (2004-01-23 22:16) [3]type
TForm1 = class(TForm)
private
procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
procedure WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
end;
implementation
const
Margin = 100; // Недоступная рамка по краям экрана
procedure TForm1.WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo);
// Это ограничивает разворачивание формы
begin
with Message.MinMaxInfo^, Screen do
begin
ptMaxSize := Point(Width - 2 * Margin, Height - 2 * Margin);
ptMaxPosition := Point(Margin, Margin)
end;
inherited
end;
procedure TForm1.WMWindowPosChanging(var Message: TWMWindowPosChanging);
// Это ограничивает перемещение формы и изменение ее размеров
begin
with Message.WindowPos^, Screen do
begin
if CX > Width - 2 * Margin then CX := Width - 2 * Margin;
if CY > Height - 2 * Margin then CY := Height - 2 * Margin;
if X < Margin then X := Margin;
if X + CX > Width - Margin then X := Width - Margin - CX;
if Y < Margin then Y := Margin;
if Y + CY > Height - Margin then Y := Height - Margin - CY
end;
inherited
end;
← →
Miau © (2004-01-23 22:35) [4]Ещё раз спасибо. Это как раз то, что нужно. Мышь, конечно, непривычно себя ведёт, но это уже другая история :)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.03 c