Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
1-48650
BIG_BROTHER
2003-09-02 20:55
2003.09.15
Проверка заполнения


1-48558
Vest
2003-09-01 19:17
2003.09.15
Убрать ScrollBar MDI формы


14-48763
Ru
2003-08-26 12:11
2003.09.15
Графические пакеты


14-48700
Knight
2003-08-27 19:47
2003.09.15
Как вам такое?


14-48764
*pavel
2003-08-26 13:30
2003.09.15
Novell & bad sector





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский