Форум: "Система";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];
ВнизВысота рабочего стола без панели задач... Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.015 c