Вниз
Скачать: CL | DM;

Высота Task Bar   Найти похожие ветки 

← →
Dezmond   (2005-05-29 22:40) [0]

Привет всем!
Возникла необходимость знать высоту Task Bar"a.
Как это сделать? Возникла идея исользовать FindWindow применительно к окну с классом Shell_TrayWnd (в ХР это и есть таск бар), во всех ли версиях Windows класс таскбара называется так?

Спасибо!


← →
Sergey Masloff   (2005-05-29 22:45) [1]

Не подойдет

Screen.Height - Screen.WorkAreaHeight

Вообще WorkAreaHeight это размер рабочей области за вычетом таскбара может это тебе нужно?


← →
Dezmond   (2005-05-29 22:47) [2]

Именно это!
Спасибо!!!


← →
Anatoly Podgoretsky ©   (2005-05-29 23:05) [3]

Sergey Masloff   (29.05.05 22:45) [1]
Не войдет если рассположен слева или справа


← →
Sergey Masloff   (2005-05-29 23:12) [4]

Anatoly Podgoretsky ©   (29.05.05 23:05) [3]
Да я просто телепат понял что человеку нужно. Просто вся доступная поверхность а тут WorkAreaHeight в самый раз ;-)


← →
Dezmond   (2005-05-29 23:33) [5]

-> Anatoly Podgoretsky ©   (29.05.05 23:05) [3]

Всё правильно, мне это и нужно было. Это для того, чтобы сделать ICQ-like окошко (как версии 5) для отображения новых сообщений. Оно должно появляться в нижнем-правом углу "над часиками". Если таскбар будет справа (слева) значит окошка будет "вылезать" прямо из-за границы экрана. Конечно надо ещё учитывать WorkAreaWidth на случай если тасбар будет справа.

Ещё раз спасибо. Вроде простая вещь, а застопорился )


← →
Andy BitOff ©   (2005-05-30 01:56) [6]

Вот так правильнее будет, имхо =)


var
 ABData: TAppBarData;
 bAlwaysOnTop: Boolean; {Поверх окон}
 bAutoHide   : boolean; {Авт. убирать с экрана}
 ClRect      : TRect;   {Клиентские области}
 Rect        : TRect;
 Edge        : UInt;    {Местоположение TaskBar}
begin
 //определение положения TaskBar"a и его размер
 ABData.hWnd   := FindWindow("Shell_TrayWnd", nil);
 ABData.cbSize := sizeof(AppBarData);
 bAlwaysOnTop      := strToBool(IntToStr((SHAppBarMessage(ABM_GETSTATE, ABData) and  ABS_ALWAYSONTOP)));
 bAutoHide         := strToBool(IntToStr((SHAppBarMessage(ABM_GETSTATE, ABData) and  ABS_AUTOHIDE)));
 windows.GetClientRect(ABData.hWnd, ClRect);
 GetWindowRect(ABData.hwnd, rect);
 if (Rect.top >  0) Then Edge := ABE_BOTTOM else if (Rect.Bottom <  Screen.Height) Then Edge := ABE_TOP
   else if Rect.Right <  Screen.Width Then Edge := ABE_LEFT else Edge := ABE_RIGHT;
 //установка положения и изменение размеров формы на весь экран по высоте
 a:=0;
 if Edge=ABE_TOP then a:=clRect.Bottom;
 MainForm.Top:=a;
 a:=Screen.Height-clRect.Bottom-MainForm.Height;
 MainForm.Height:=MainForm.Height+a;
end;


← →
KilkennyCat ©   (2005-05-30 02:19) [7]

то же самое, но с некоторыми дополнениями
http://www.codeproject.com/shell/trayposition.asp



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
1-1117031143
SergP.
2005-05-25 18:25
2005.06.14
Необходимость деструктора в описании своего класса


3-1115369002
Shark
2005-05-06 12:43
2005.06.14
Записи помеченные на удаление.


3-1115369119
DelphiN!
2005-05-06 12:45
2005.06.14
Создание в FastReport отчета по таблице неизвесной структуры


6-1111951833
Змей
2005-03-27 23:30
2005.06.14
webbrowser


4-1114420136
}|{yk
2005-04-25 13:08
2005.06.14
Как зарегистрировать файлы для открытия их определенной программо




   Наверх