Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.21;
Скачать: CL | DM;

Вниз

ICQ   Найти похожие ветки 

 
DVM ©   (2005-08-03 14:03) [40]


> webpauk

Можно и без аппбаров

function EnumWindowsProc (hWnd: HWND; Data: Pointer) : BOOL; stdcall;
var
 rcWorkArea, rcWindow: TRect;
 dx, dy: integer;
begin
 rcWorkArea := TRect(Data^);
 if IsMoveableWindow(hWnd) then
   begin

     // Если окно максимизировано, подстраиваем его размеры по рабочей области
     GetWindowRect(hwnd, rcWindow);
     if IsZoomed(hWnd) then
       MoveWindow(hwnd, rcWorkArea.Left, rcWorkArea.Top, rcWorkArea.Right - rcWorkArea.Left, rcWorkArea.Bottom - rcWorkArea.Top, true)
     else
       begin
     // Если высота окна больше высоты рабочей области
     GetWindowRect(hwnd, rcWindow);
     if GetWindowHeight(hWnd) > (rcWorkArea.Bottom - rcWorkArea.Top) then
       begin
         dy:=GetWindowHeight(hWnd)-(rcWorkArea.Bottom - rcWorkArea.Top);
         if IsSizeableWindow(hWnd) then
           MoveWindow(hwnd, rcWindow.Left, rcWorkArea.Top, GetWindowWidth(hWnd), GetWindowHeight(hWnd) - dy, true);
       end;

     // Если ширина окна больше ширины рабочей области
     GetWindowRect(hwnd, rcWindow);
     if GetWindowWidth(hWnd) > (rcWorkArea.Right - rcWorkArea.Left) then
       begin
         dx:=GetWindowWidth(hWnd)-(rcWorkArea.Right - rcWorkArea.Left);
         if IsSizeableWindow(hWnd) then
           MoveWindow(hwnd, rcWorkArea.Left, rcWindow.Top, GetWindowWidth(hWnd)-dx, GetWindowHeight(hWnd), true);
       end;

     // Если окно заезжает за верхний край рабочей области
     GetWindowRect(hwnd, rcWindow);
     if rcWindow.top < rcWorkArea.top then
       begin
         dy := rcWorkArea.top - rcWindow.top;
         if dy > (rcWorkArea.Bottom - rcWindow.Bottom) then
           dy := rcWorkArea.Bottom - rcWindow.Bottom;
         MoveWindow(hwnd, rcWindow.Left, rcWindow.Top + dy, GetWindowWidth(hWnd), GetWindowHeight(hWnd), true);
       end;

     // Если окно заезжает за нижний край рабочей области
     GetWindowRect(hwnd, rcWindow);
     if rcWindow.Bottom > rcWorkArea.Bottom then
       begin
         dy := rcWindow.Bottom - rcWorkArea.Bottom;
         if dy > (rcWindow.Top - rcWorkArea.Top) then
           dy := rcWindow.Top - rcWorkArea.Top;
         MoveWindow(hwnd, rcWindow.Left, rcWindow.Top - dy, GetWindowWidth(hWnd), GetWindowHeight(hWnd), true);
       end;

     // Если окно заезжает за левый край рабочей области
     GetWindowRect(hwnd, rcWindow);
     if rcWindow.Left < rcWorkArea.Left then
       begin
         dx :=  rcWorkArea.Left - rcWindow.Left;
         if dx > (rcWorkArea.Right - rcWindow.Right) then
           dx := rcWorkArea.Right - rcWindow.Right;
         MoveWindow(hwnd, rcWindow.Left+dx, rcWindow.Top, GetWindowWidth(hWnd), GetWindowHeight(hWnd), true);
       end;
     GetWindowRect(hwnd, rcWindow);

     // Если окно заезжает за правый край рабочей области
     if rcWindow.Right > rcWorkArea.Right then
       begin
         dx := rcWindow.Right - rcWorkArea.Right;
         if dx > (rcWindow.Left - rcWorkArea.Left) then
           dx := rcWindow.Left - rcWorkArea.Left;
         MoveWindow(hwnd, rcWindow.Left-dx, rcWindow.Top, GetWindowWidth(hWnd), GetWindowHeight(hWnd), true);
       end;
      end;
   end;
 Result := true;
end;

//------------------------------------------------------------------------------

procedure SetWorkAreaWithMoveWindows;
var
 rcNewWorkArea: TRect;
 rcTaskBar: TRect;

begin
 rcNewWorkArea := Rect(0,
                       0,
                       GetSystemMetrics(SM_CXSCREEN),
                       GetSystemMetrics(SM_CYSCREEN));
 GetWindowRect(hTaskBarWnd, rcTaskBar);
 case GetEdge of
   tbeLeft: rcNewWorkArea.Left := rcTaskBar.Right;
   tbeTop:  rcNewWorkArea.Top := rcTaskBar.Bottom;
   tbeRight: rcNewWorkArea.Right := rcTaskBar.Left;
   tbeBottom: rcNewWorkArea.Bottom := rcTaskBar.Top;
 end;
 SystemParametersInfo(SPI_SETWORKAREA, 0, @rcNewWorkArea, SPIF_SENDCHANGE);

 EnumWindows(@EnumWindowsProc, LongInt(@rcNewWorkArea));
end;


 
Digitman ©   (2005-08-03 14:04) [41]


> webpauk   (03.08.05 14:01) [38]
>
> > Digitman ©   (03.08.05 13:58) [36]
>
> еще раз повторяю, я акцентировал вопрос на слове "окна"


врешь.

тема вопроса - "ICQ".
ICQ - это сеть.

А Мирабилис-клиент сети ICQ  для Win имеет к ICQ-сети такое же отношение как яичница к божьему дару.


 
ANB ©   (2005-08-03 14:11) [42]

Удалено модератором
Примечание: Предупреждение


 
webpauk   (2005-08-03 14:15) [43]


> Digitman ©   (03.08.05 14:02) [39]

извините, что неправильно сформулировал вопрос.

> ты бестолков на редкость)


 
webpauk   (2005-08-03 14:16) [44]


> Digitman ©   (03.08.05 14:04) [41]

старался как мог. И объяснял! А вы мне всё сеть да сеть!


 
ANB ©   (2005-08-03 14:17) [45]

Удалено модератором


 
Digitman ©   (2005-08-03 14:21) [46]


> webpauk   (03.08.05 14:15) [43]


итак, попрыгав с бубном, можно сделать предположение, что речь твоя таки идет об интересных тебе особенностях реализации граф.интерфейса ICQ-клиента от Мирабилис под Win ? т.е. Win-приложения разработки компании Мирабилис, являющего собой клиента ICQ-сети и реализующего граф.интерфейс пользователя как полноценного клиента этой сети ?


 
webpauk   (2005-08-03 14:35) [47]


> Digitman ©   (03.08.05 14:21) [46]
>
> > webpauk   (03.08.05 14:15) [43]
>
>
> итак, попрыгав с бубном, можно сделать предположение, что
> речь твоя таки идет об интересных тебе особенностях реализации
> граф.интерфейса ICQ-клиента от Мирабилис под Win ? т.е.
> Win-приложения разработки компании Мирабилис, являющего
> собой клиента ICQ-сети и реализующего граф.интерфейс пользователя
> как полноценного клиента этой сети ?


неа!!!
меня интересует только как плесень заводится по углам!


 
Digitman ©   (2005-08-03 14:36) [48]


> webpauk   (03.08.05 14:35) [47]


это заметно.


 
ANB ©   (2005-08-03 14:42) [49]

Удалено модератором


 
webpauk   (2005-08-03 15:11) [50]


> Digitman ©   (03.08.05 14:36) [48]

признайся ты работал в КГБ? сстолько придирок к моему невинному сабжу и вопросам!!!


 
Slym ©   (2005-08-03 15:23) [51]

SystemParametersInfo ()
SPI_GETWORKAREA/SPI_SETWORKAREA


 
Slym ©   (2005-08-03 15:25) [52]

Удалено модератором


 
Digitman ©   (2005-08-03 15:26) [53]


> webpauk   (03.08.05 15:11) [50]


да, работал.
и что ?


 
webpauk   (2005-08-03 15:29) [54]


> Digitman ©   (03.08.05 15:26) [53]

ничего!
для души хотелось!


 
Slym ©   (2005-08-03 15:29) [55]

Плохой программист - должен разобраться в грамотном техзадании.
Хороший программист - должен разобраться в любом тех задании.
Злой программист - разбираться вообще не будет и пошлет всех нах... (типа у меня и так работы...) и сядет смотрель порнуху успокаивая последний нерв


 
Digitman ©   (2005-08-03 15:33) [56]


> webpauk   (03.08.05 15:29) [54]


ну так получи сатисфакцию)

а касаемо сабжа -


> как ICQ сдвигает все окна влево


еще раз :

никакое "ICQ" никакие "окна" никуда не "сдвигает" - ни вправо, ни влево , ни раком, ни боком.



Страницы: 1 2 вся ветка

Текущий архив: 2005.08.21;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.049 c
14-1122814320
Alexander Panov
2005-07-31 16:52
2005.08.21
просмотр форумов с кпк


3-1121250621
TAN_K
2005-07-13 14:30
2005.08.21
Отчет QuickRep


1-1123017490
iskatel
2005-08-03 01:18
2005.08.21
прокси, попытка 2 ))


4-1119704859
vlk2005
2005-06-25 17:07
2005.08.21
Информация об установленное оборудование на компьютерах в ЛВС ?


1-1123037753
iskatel
2005-08-03 06:55
2005.08.21
proxy