21.7. МАКРОКОМАНДЫ WINHELP

Справочная служба Windows 32 - WinHelp имеет встроенные макрокоманды, которые доступны из справочной службы программы. Макрокоманды могут выполняться в следующих случаях:

- при открытии справочного файла (определяются в секции Соnfig);
- при открытии окна с разделом (определяются сноской “!”);
- при выборе ключевого слова (определяются на странице Macros окна options).

В этом разделе описываются некоторые часто используемые макрокоманды WinHelp, для удобства разделенные по функциональному назначению. Полное описание всех макрокоманд вы найдете в справочной службе MS HW. Формат определения макрокоманд соответствует формату определения функций в языке С. Если макрокоманда не имеет параметров обращения, за ее именем требуется задать пару пустых скобок так, как это указано ниже в описании макрокоманд.

Макрокоманда | Назначение
Управление инструментальными кнопками
Back() | Соответствует нажатию кнопки назад. Идентификатор кнопки (id) - btn back
BackFlush О | Очищает список предыдущих разделов кнопки Назад
BrowsButtons () ChangeButtonBuilding(ID,macro) ChangeEnable(ID,macro) CreateButton(ID,title,macro) | Вставляет кнопки последовательного просмотра связанных разделов Для кнопки id определяет макрокоманду macro то же, что ChangeButtonBuilding, дополниттельно отменяет запрет кнопки Создает кнопку с идентификатором id и надписью title; назначает кнопке макрокоманду macro
DestroyButton (ID) DisableButton(ID) EnableButton(ID) Contents ( ) | Удаляет кнопку с идентификатором id Запрещает выбор кнопки с идентификатором id Разрешает выбор кнопки с идентификатором id Соответствует нажатию кнопки содержание. Id кнопки-btn contents
FindO | Соответствует нажатию кнопки Поиск. id кнопки-btn find
Finder () | Соответствует нажатию кнопки Разделы. id
Menu () | кнопки - btntopics Соответствует нажатию кнопки параметры Id кнопки - btn menu
Next() | Соответствует нажатию кнопки >.. id кнопки -btn next
Prev() | Соответствует нажатию кнопки <. id кнопки -btn previous
Print () | Соответствует нажатию кнопки Печать. id
Search () | кнопки-btn print Соответствует нажатию кнопки Указатель. id кнопки-btn search

Макрокоманды переходов

ALink(keyword[,type[,ID[.win name] ] ] ) | Переход по ключевому слову keyword из дополнительной таблицы слов на раздел с идентифи катором id. winname - тип окна для показа раздела. Параметр type определяет дополнительное действие (см. ниже примечание 1)
JumpContents(filename) | Переход на умалчиваемый раздел, определенный для файла filename
JumpContext([[filename>]winname, ]NID) | Переход на раздел с числовым идентификатором nid, который указан в секции map
JumpHash([[filename>]winname,] HID) | Переход на раздел с внутренним числовым идентификатором hid (см. примечание 2)
JumpID([[filename>]winname,]ID) | Переход на раздел с идентификатором id
JumpKeyword([filename,]keyword) | Переход на раздел по ключевому слову keyword В файле filename
KLink(keyword[,type[,ID[,winname] ] ]) | Переход по ключевому слову keyword на раздел с идентификатором id. winname - тип окна для показа раздела. Параметр type определяет дополнительное действие (см. ниже примечание 1)
PopupContext([filename,]NID) | Переход на раздел с числовым идентификатором nid, который указан в секции map. Показывает раздел в окне пояснений
PopupHash([filename,]HID) | Переход на раздел с внутренним числовым идентификатором hid (см. примечание 2). Показывает раздел в окне пояснений
PopupID([filename,]ID) SetContents(filename,ID) TestALink("keyword") TestKLink("keyword") UpdateWindow([filename>]win-name, ID) | Переход на раздел с идентификатором id. Показывает раздел в окне пояснений Определяет раздел с идентификатором id как содержание справочной службы Выполняет ALink для ключевого слова keyword и возвращает 1, если переход возможен, или 0, если ни один раздел не найден Выполняет KLink для ключевого слова keyword и возвращает 1, если переход возможен, или 0, если ни один раздел не найден То же, что JumpiD, но активным остается прежнее окно

Работа с меню

About () | Эквивалент выбору опции Справка | версия
AppendItem(menuID,itemID, Title,macro) | Вставляет опцию с надписью Title в подменю menuiD и связывает с ней макрокоманду macro itemID - идентификатор новой опции
Annotate () | Эквивалент выбору опции правка Заметки.
BookmarkDefine () | Эквивалент выбору опции Закладка | Определить
ChangeItemBinding(itemIDmacro) | Назначает опции с идентификатором itemID макрокоманду macro
Checkltem(itemID) | Помещает значок отметки рядом с опцией itemID
CopyTopic () | Эквивалент выбору опции Правка Копировать
Deleteltem(itemID) | Удаляет опцию itemID
Disableltem(itemID) | Запрещает выбор опции itemid
Enableltem(itemID) | Разрешает выбор опции itemid
Exit() | Эквивалент выбору опции Файл | выход
FileOpen () | Эквивалент выбору опции Файл | Открыть
FloatingMenu() | Вывод вспомогательного меню (эквивалент щелчку правой кнопкой мыши)
HelpOnTopO | Эквивалент выбору опции Параметры | Размещение окна | Поверх остальных
Histopy() | Эквивалент выбору опции параметры | Показать окно хронологии
InitMPrint() InsertItem(menuID,itemID, Title,macro,position) | Вставляет элемент меню itemID в меню menuiD
ResetMenu () | Устанавливает умалчиваемое меню

Команды условного перехода

IFThen(macro,macrol) | Если макрокоманда выполняет macrol иначе ничего не делает
IFThenElse(macro,macrol,macro2) | Если макрокоманда macro возвращает 1, выполняет macrol иначе выполняет macro2
Not(macro) macro возвращает 1, | Инвертирует результат, возвращаемый macro

Примечание 1.

> Параметр type в командах поиска ALink, KLink может иметь несколько следующих возможных значений, разделенных пробелом:

0 | Выводится окно с названиями наиденных разделов
1 | Если найден только один раздел, он показывается в справочном окне
2 | Если разделы находятся в разных файлах, в окне поиска указываются имена файлов вместе с названиями разделов
4 | Если найден хотя бы один раздел, макрокоманда возвращает 1

Примечание 2.

> Внутренний числовой идентификатор создается компилятором по идентификатору раздела. Его можно увидеть в окне File | Report после щелчка по кнопке Report при установленном переключателе Hash number .