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

Вниз

Высота рабочего стола без панели задач...   Найти похожие ветки 

 
Mihey ©   (2003-06-28 23:54) [0]

Нужно узнать высоту области рабочего стола, где могут размещаться окна (т.е. высота экрана без высоту панели задач). Можно ли это дело реализовать без узнавания хэндла панели задач и дальнейшего определения параметров через посылку сообщений окнам?


 
Fenik ©   (2003-06-29 01:01) [1]

Вряд ли. Придётся хендл узнавать.
Юзер ведь может расширить панель задач..


 
sniknik ©   (2003-06-29 01:16) [2]

высота экрана без высоту панели задач
Screen.WorkAreaHeight
недостаток, инициализируется при старте программы (если поменять размер панели при запушеной программе, значение останется старым), ну во всяком случае когда пробовал у меня так и было. глубокого разбирательства как она работает не было, естественно.


 
Fenik ©   (2003-06-29 01:54) [3]

Вот нашёл в ShellAPI:

function SHAppBarMessage(dwMessage: DWORD; var pData: TAppBarData): UINT;

PAppBarData = ^TAppBarData;
TAppBarData = record
cbSize: DWORD; {Размер записи}
hWnd: HWND; {Дескриптор панели}
uCallbackMessage: UINT; {Значение сообщения, которое будет послано панели с уведомляющими сообщениями}
uEdge: UINT;
rc: TRect; {Ограничивающий прямоугольник панели}
lParam: LPARAM; {Информация, связанная с сообщением}
end;

ели запросить при dwMessage = ABM_QUERYPOS (или $2), то функция должна вернуть позицию AppBar.

Т.е.
uses ShellAPI;
...
var F: TAppBarData;
...
SHAppBarMessage(ABM_QUERYPOS, F);

И смотрим F.rc

Я сам не пробовал. Может у тебя получится..


 
Юрий Зотов ©   (2003-06-29 02:00) [4]

SystemParametersInfo c SPI_GETWORKAREA. Детали - в справке API.


 
DVM ©   (2003-06-29 14:17) [5]


> Mihey © ( Панель офиса и пр.)

> Mihey ©

Не забывайте, что панель это только одно из АппБаров, а могут быть и другие (Панель офиса и пр.). Поэтому единственный правильный ответ:

> Юрий Зотов © (29.06.03 02:00)



 
sniknik ©   (2003-06-29 17:29) [6]

DVM © (29.06.03 14:17)
ну не согласный я, насчет единственно правильного ответа. Screen.WorkAreaHeight со всеми его недостатками тоже покажет правильно. (в борланде наверняка тоже в курсе насчет "Панель офиса и пр.")


 
Deus ©   (2003-07-02 13:33) [7]

Можно ещё использовать GetSystemMetrics(SM_CX(Y)MAXIMIZED).
Кстати, панель задач может быть не только снизу. А так же рабочую область может уменьшить какаянть прога тип аськи...



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

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

Наверх




Память: 0.48 MB
Время: 0.029 c
3-48433
dot
2003-08-25 10:15
2003.09.15
Как сделать фильтр по нескольким полям?


3-48449
Andrey V.
2003-08-22 23:10
2003.09.15
Параметры gbak.exe, gstat.exe и пр.


1-48535
alex-ran
2003-09-04 14:04
2003.09.15
Chart и PieSeries


14-48698
big_bugzy
2003-08-25 15:08
2003.09.15
Delphi5 & Delphi7 непонятки при запуске с расшаренных ресурсов


1-48641
dmitriyt
2003-09-04 15:53
2003.09.15
PaintBox в ScrollBox