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

Как узнать, где находится панель ТаскБара?   Найти похожие ветки 

← →
TankMan ©   (2002-10-13 02:33) [0]

У меня вот проблема... вобщем сабж. И еще как узнать какой она высоты ?


← →
pirat ©   (2002-10-13 09:30) [1]

берете winsight, находите окно таскбара (и как называется его оконный класс) и на каком он уровне вложенности (и путь к нему через его parents). В программе
с помощью EnumChildWindows отталкиваясь от окна с handle 0 доходите до таск бара. А дальше GetWindowRect или нечто подоюное (см MSDN)


← →
Совет   (2002-10-13 09:38) [2]

Зайдите на сайт "Delphi X-Files" (www.delphixfiles.narod.ru). Там все написано!


← →
Song ©   (2002-10-13 10:30) [3]

ShAppBarMessage()


← →
turusov ©   (2002-10-14 08:38) [4]

Где взял инф. для написания не помню, не спрашивате.
procedure GetDesktop(var R: TRect; var Edge: UInt);
var
AppBarData : TAppBarData;
bAlwaysOnTop, //Taskbar всегда на экране
bAutoHide : boolean;
Clrect, WRect : TRect;
// Edge: UInt; <-- //Местоположение TaskBar
{---}
procedure DetectTaskBar;
begin
AppBarData.hWnd := FindWindow("Shell_TrayWnd", nil);
AppBarData.cbSize := sizeof(AppBarData);
bAlwaysOnTop := (SHAppBarMessage(ABM_GETSTATE, AppBardata) and ABS_ALWAYSONTOP) <> 0;
bAutoHide := (SHAppBarMessage(ABM_GETSTATE, AppBardata) and ABS_AUTOHIDE) <>0;
GetClientRect(AppBarData.hWnd, Clrect);
GetWindowRect(AppBarData.hwnd, WRect);
if (WRect.top > 0) then Edge := ABE_BOTTOM
else
if (WRect.bottom < screen.height) then Edge:=ABE_TOP
else
if WRect.right < screen.width then Edge:=ABE_LEFT
else
Edge:=ABE_RIGHT;
end;
{---}
begin
try
R:= Rect(Screen.DesktopLeft, Screen.DesktopTop,
Screen.DesktopWidth, Screen.DesktopHeight);
DetectTaskBar;
case Edge of
ABE_LEFT: begin
R.Left:= Screen.DesktopLeft + Clrect.Right + 4;
R.Right:= Screen.DesktopWidth - R.Left - 4;
end;
ABE_TOP: begin
R.Top:= Screen.DesktopTop + Clrect.Bottom + 4;
R.Bottom:= Screen.DesktopHeight - R.Top - 4;
end;
ABE_RIGHT: R.Right:= Screen.DesktopWidth - Clrect.Right - 4;
ABE_BOTTOM: R.Bottom:= Screen.DesktopHeight - Clrect.Bottom - 4;
end;//case

except
R:= Rect(Screen.DesktopLeft, Screen.DesktopTop,
Screen.DesktopWidth, Screen.DesktopHeight);
Edge:= ABE_BOTTOM;
end;
end;


← →
turusov ©   (2002-10-14 08:40) [5]

TAppBarData - ShellAPI


← →
TankMan ©   (2002-10-15 03:41) [6]

Спасибо попробую...



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

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



Память: 0.46 MB
Время: 0.014 c
14-51899
Dave2000
2002-11-22 12:06
2002.12.16
Как отправить e-mail НЕ через компоненты Дельфи?


3-51571
Брат
2002-11-26 16:43
2002.12.16
Как отловить исключительную ситуацию, которая возникает, когда я


1-51816
avsh
2002-11-28 01:08
2002.12.16
Динамические массивы


1-51693
Маленький
2002-12-05 21:28
2002.12.16
Как закрыть чужое приложение из своей программы?


1-51741
Pan
2002-12-06 12:40
2002.12.16
Быстрое определение формата файлов DOC и XLS




   Наверх