![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение размера "липких" окон [D6, D7, Win2k, WinXP]
superedward © (2004-07-21 13:22:00)Есть ФАК по липких окошкам. Оч. хорошо. Они прекрасно лепятся. Однако возникает неприятный глюк при изменении размеров липкого окна: размер начинает меняться с другой, неперетаскиваемой стороны формы.
Я просто уже очень устал искать лекарство, можа кто делал нечто подобное?
superedward (2004-07-22 07:09:00) [1]Липкие окна - окна, которые при перемещении "прикрепляются" к краям десктопа (как WinAmp, например)
обрабатываю сообщение WM_WINDOWPOSCHANGING:
procedure TWindowCustom.WMWindowPosChanging(var Msg: TWMWINDOWPOSCHANGING);
{процедура прилепления дочерних окон к краям десктопа}
begin
if WindowState=wsMaximized then begin
inherited;
exit;
end;
if(Abs(Msg.WindowPos^.Y-DesktopRect.Top)<WindowGlueConst)then begin//Up
Msg.WindowPos^.Y:=DesktopRect.Top;
end;
if(Abs(Msg.WindowPos^.Y-(DesktopRect.Bottom-Msg.WindowPos^.CY))<WindowGlueConst)then begin//Down
Msg.WindowPos^.Y:=DesktopRect.Bottom-Height;
end;
if(Abs(Msg.WindowPos^.X-DesktopRect.Left)<WindowGlueConst)then begin//Left
Msg.WindowPos^.X:=DesktopRect.Left;
end;
if(Abs(Msg.WindowPos^.X-(DesktopRect.Right-Width))<WindowGlueConst)then begin//Right
Msg.WindowPos^.X:=DesktopRect.Right-Msg.WindowPos^.CX;//Width;
end;
end;
clickmaker (2004-07-21 14:24:00) [2]
> Они прекрасно лепятся
из пластилина ?
pasha_golub (2004-07-21 14:18:00) [3]Код давайте, уважаемый
Gero (2004-07-21 14:07:00) [4]А че это они липкие? Медом что ли намазаны?
VMcL (2004-07-21 14:05:00) [5]Телепаты на другом форуме.