Главная » Delphi » Панели инструментов рабочего стола

0

Панели  инструментов рабочего стола  приложений  (AppBar —    Application  Desktop Toolbar) представляют собой  окна  рабочего стола,  которые могут быть  закреплены у одной  из границ экрана (docking). Хотя  сам этот  термин может  показаться и не зна комым,  но с объектами, обладающими таким свойством, приходится встречаться каж дый раз,  работая с компьютером. Пример окна  AppBar —  панель  задач  Windows.  Как показано на рис. 16.4, панель  задач на самом деле даже несколько больше,  чем просто окно  AppBar,  поскольку  оно  содержит кнопку  Start (Пуск),  область  индикаторов и другие элементы управления.

Рис. 16.4. Панель задач оболочки Windows

Помимо свойства закрепления по  границам экрана, окна  типа  AppBar  обладают рядом  других свойств, присущих  панели задач  (например, автоматическое сокрытие или  возможность перетаскивания с помощью мыши).  Но  что  по настоящему удивля ет — так это размеры интерфейса API окон  данного типа — всего лишь одна функция! Следствием  подобной  компактности,  естественно,  является  ограниченность  реали зуемых интерфейсом возможностей. Роль интерфейса здесь скорее консультативная, нежели функциональная, т.е. вместо  того  чтобы  управлять окном  AppBar  с помощью команд  типа  “сделай  это” или  “сделай  то”, окну AppBar  передаются запросы наподо бие “можно ли сделать это?” и “можно ли сделать то?”.

Интерфейс API

Подобно индикаторам области панели задач,  для панелей инструментов рабочего стола  предусмотрена только  одна  функция API —  SHAppBarMessage(). Она  опреде лена в модуле ShellAPI следующим образом:

function SHAppBarMessage(dwMessage: DWORD;

var pData: TAppBarData): UINT; stdcall;

Первый параметр dwMessage может принимать только одно из значений, приве

денных  в табл. 16.3.Таблица 16.3. Сообщения AppBar

Константа

Значение

Назначение

ABM_NEW

$0

Регистрирует  новое  окно  AppBar  и  опре

деляет  новое  “обратное” сообщение

ABM_REMOVE

$1

Отменяет регистрацию существующего  окна

AppBar

ABM_QUERYPOS

$2

Запрашивает новую позицию и размер окна

AppBar

ABM_SETPOS

$3

Устанавливает  новую   позицию  и   размер окна AppBar

ABM_GETSTATE

$4

Возвращает состояния  “автосокрытие” и “расположить поверх всех” панели инстру ментов оболочки

ABM_GETTASKBARPOS

$5

Возвращает позицию панели  инструментов оболочки

ABM_ACTIVATE

$6

Уведомляет  Windows   о   создании  нового окна AppBar

ABM_GETAUTOHIDEBAR

$7

Возвращает дескриптор скрытого окна AppBar,  прикрепленного к одной  из границ экрана

ABM_SETAUTOHIDEBAR

$8

Регистрирует  скрытое  окно  AppBar  на  оп

ределенной границе экрана

ABM_WINDOWPOSCHANGED

$9

Информирует Windows об изменении пози

ции окна AppBar

Параметр pData функции  SHAppBarMessage() представляет собой  запись  типа

TAppBarData, которая определена в модуле ShellAPI следующим образом:type

PAppBarData = ^TAppBarData;

TAppBarData = record

cbSize: DWORD;

hWnd: HWND;

uCallbackMessage: UINT;

uEdge: UINT;

rc: TRect;

lParam: LPARAM; { Специфическая информация сообщения }

end;

В этой  записи в поле  cbSize хранится размер записи;  в поле  hWnd —  дескриптор заданного окна  AppBar;  в поле  uCallbackMessage —  значение сообщения, которое будет послано окну AppBar  вместе  с уведомляющими сообщениями; в поле  rc —  гра ницы  опрашиваемого прямоугольника окна AppBar; в поле lParam — дополнительная информация, специфичная для данного сообщения.

CОВЕТ

Более подробную информацию о функции API SHAppBarMessage() и о записи типа

TAppBarData можно найти в интерактивной справочной системе Win32.

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии