Обучающие иллюстрации
Обучающие иллюстрации усиливают принцип интерактивности справочной системы Windows и помогают пользователю выполнять сложные задачи, выступая в качестве проводника для определенного процесса. Приложение инициирует обучающие иллюстрации путем комбинирования флага HELP_TCARDс другой командой при вызове функции WinHelp. Справочная система Windows отображает запрашиваемый раздел, который обычно содержит одну или несколько кнопок, на которые пользователь может воздействовать. Когда пользователь выбирает одну из кнопок, либо выполняет некоторое другое действие, Windows отправляет приложению сообщение WM_TCARD, которое и указывает на это действие. Пример использования обучающих иллюстраций приводится ниже в описании сообщения WM_TCARD.
Функции справочных файлов и описания сообщений
В табл. 28.2 перечислены сообщения и функции, используемые для взаимодействия со справочными файлами. Затем можно найти подробные описания сообщений и функций.
Таблица 28.2 Перечень функций справочных файлов и сообщений |
||||||
Функция |
Назначение |
|||||
GetMenuContextHelpId |
Извлекает идентификатор контекстной справки указанного меню |
|||||
GetWindowContextHelpId |
Извлекает идентификатор контекстной справки указанного меню или элемента управления |
|||||
SefMenuContextHelpId |
Устанавливает идентификатор контекстной справки указанного меню |
|||||
SetWindowContextHelpId |
Устанавливает идентификатор контекстной справки указанного окна или элемента управления |
|||||
WinHelp |
Запускает механизм справочной системы Windows |
|||||
Сообщение |
Назначение |
|||||
WM_HELP |
Отправляется приложению, когда пользователь нажимает клавишу F1 либо выполняет щелчок на пиктограмме с вопросительным знаком в заголовке окна приложения. |
|||||
WM_TCARD |
Обеспечивает взаимодействие между приложением и механизмом справочной системы Windows в течение сеанса работы с обучающими иллюстрациями |
|||||
GetMenuContextHelpId • Windows 98 • Windows 2000 |
||||||
Описание |
Функция GetMenuContextHelpId извлекает идентификатор контекстной справки указанного меню. Значение этого идентификатора устанавливается с помощью функции SetMenuContextHelpId. |
|||||
Синтаксис |
DWORD GetMenuContextHeIpId( HMENU hMenu ) |
|||||
Параметры hMenu |
HMENU: Дескриптор меню, для которого возвращается контекстный идентификатор. |
|||||
Возвращаемое значение |
DWORD: В случае успешного завершения возвращается контекстный идентификатор указанного меню, а иначе — 0. |
|||||
Включаемый файл |
winuser.h |
|||||
См. также |
SetMenuContextHelpId |
|||||
GetWindowContextHelpId * Windows 98 + Windows 2000 |
||||||
Описание |
Функция GetWindowContextHelpId извлекает идентификатор контекстной справки указанного окна или элемента управления. Значение этого идентификатора устанавливается с помощью функции SetWindowContextHelpId. Окно или элемент управления, для которого не установлен идентификатор контекстной справки, наследует идентификатор родительского объекта. |
|||||
Синтаксис |
DWORD GetWindowContextHelpId( HWND hWindow ) |
|||||
Параметры Л Window |
HWND: Дескриптор окна или элемента управления для окна, контекстный идентификатор которого возвращается. |
|||||
Возвращаемое значение |
DWORD: При успешном завершении возвращается контекстный идентификатор указанного окна, в противном случае — 0. |
|||||
Включаемый файл |
winuser.h |
|||||
См. также |
SetWindowContextHelpId |
|||||
SetMenuContextHelpId *• Windows 98 • Windows 2000 |
||||||
Описание |
Функция SetMenuContextHelpId устанавливает идентификатор контекстной справки указанного меню. Значение этого идентификатора извлекается с использованием функции GetMenuContextHelpId. Доступ к контекстному идентификатору меню осуществляется через структуру HELPINFO в процессе обработки сообщения WMJHELP. |
|||||
Синтаксис |
BOOL SetMenuContextHelpId( HMENU hMenu, DWORD dwContextHelpID ) |
|||||
Параметры |
||||||
hMenu |
HMENU: Дескриптор меню, для которого устанавливается контекстный идентификатор. |
|||||
dwContextHelpID |
DWORD: Идентификатор контекстной справки. Это значение присваивается идентификатору контекстной справки пункта меню. |
|||||
Возвращаемое значение |
BOOL: При успешном завершении возвращается значение TRUE, в противном случае — FALSE. |
|||||
Включаемый файл |
winuser.h |
|||||
См. также |
GetMenuContextHelpId |
|||||
SetWindowContextHelpId • Windows 98 • Windows 2000 |
||||||
Описание |
Функция SetWindowContextHelpId устанавливает контекстный идентификатор указанного окна или элемента управления. Для извлечения значения этого идентификатора используется функция GetWindowContextHelpId. Окно или элемент управления с неустановленным контекстным идентификатором наследует идентификатор родительского объекта. Доступ к контекстному идентификатору реализуется через структуру HELPINFO в процессе обработки сообщения WM_HELP. |
|||||
Синтаксис |
BOOL SetWindowContextHelpId( HWND hWindow, DWORD dwContextHelpID ) |
|||||
Параметры |
||||||
hWindow |
HWND: Дескриптор окна или элемента управления для окна, контекстный идентификатор которого возвращается. |
|||||
dwContextHelpID |
DWORD: Контекстный идентификатор. Это значение присваивается контекстному идентификатору окна или элемента управления. |
|||||
Возвращаемое значение |
BOOL: При успешном завершении возвращается TRUE, в противном случае -FALSE. |
|||||
Включаемый файл |
winuser.h |
|||||
См. также |
GetWindowContextHelpId |
|||||
WinHelp • Windows 98 • Windows 2000 |
||||||
Описание |
Функция WinHelp обеспечивает взаимодействие между справочной системой Windows и приложением. Она запускает Windows Help (W1NHLP32.EXE) и передает дополнительные данные, определяющие вид справки, запрашиваемой приложением. Приложение задает имя и, если необходимо, путь к справочному файлу. Перед закрытием окна, из которого запрашивалась справка, приложение должно вызвать функцию WinHelp с параметром uCommand, для которого установлено значение HELP_QUIT. Пока приложение не выполнит эти действия, процесс Windows Help не завершится. Если WinHelp была вызвана с командой HELP_CONTEXTPOPUP, в передаче HELP_QUIT нет необходимости. |
|||||
Синтаксис |
BOOL WinHeIp( HWND hWnd, LPCTSTR IpszHelpFile, UINT uCommand, DWORD dwData ) |
|||||
Параметры |
||||||
hWnd |
HWND: Дескриптор окна, запросившего справку. Обычно это главное окно приложения за исключением случаев, когда параметр uCommand имеет значение HELP_CONTEXTMENU или HELP_WM_HELP. При таких условиях это идентификатор элемента управления либо окна, о котором запрашивается справочная информация. |
|||||
lpmHelpFik |
LPCTSTR: Имя HLP-файла приложения. Имя файла может содержать символ "больше" (>), после которого следует имя окна. В таком случае справка будет отображаться во вспомогательном окне, тип которого указан в его имени. Имя вспомогательного окна должно быть указано в разделе WINDOWS HPJ-файла. |
|||||
uCommand |
UINT: Команда справочной системы Windows. Эта команда может принимать любое из значений, перечисленных в табл. 28.3. |
|||||
dwData |
DWORD: Дополнительные данные в соответствие с требованиями параметра uCommand. |
|||||
Возвращаемое значение |
BOOL: При успешном выполнении- возвращается значение TRUE, а в противном случае — FALSE. |
|||||
Таблица 28.3 Значения uCommand |
||||||
Значение |
Описание |
|||||
HELP_COMMAND |
Исполняет макросы справочной системы. Параметр dwData указывает на строку макросов справки, разделенных точками с запятой. Если макрос имеет как краткое, так и длинное имя, используется краткое имя. |
|||||
HELP_CONTENTS |
Указывает справочной системе Windows на необходимость отображения раздела, идентифицированного в HPJ-файле в качестве раздела содержимого. Обычно используется приложениями Windows 3.x, когда пользователь выполняет щелчок на пункте меню Help Contents (Вызов справки). В приложениях Windows 95 и Windows NT 4.x вместо HELP_CONTENTS должна использоваться команда HELP_FINDER. |
|||||
HELP_CONTEXT |
Указывает справочной системе Windows на необходимость отображения раздела, который связан с 32-разрядным контекстным идентификатором, переданным в параметре dwData. |
|||||
HELP_CONTEXTMENU |
Указывает справочной системе Windows на необходимость отображения меню справки для выбранного окна, а затем вывода связанного раздела справки во всплывающем окне. Параметр dwData указывает на массив пар DWORD. Первое значение DWORD в каждой паре служит идентификатором окна или элемента управления, а второе — контекстным идентификатором связанного раздела. |
|||||
HELP_CONTEXTPOPUP |
Указывает справочной системе Windows на необходимость отображения раздела, который связан 32-разрядным контекстным идентификатором, переданным в параметре dwData. Раздел отображается во всплывающем окне. |
|||||
HELP_FINDER |
Отображает список разделов справки. |
|||||
HELP_FORCEFILE |
Обеспечивает отображение справочной системой Windows требуемого HLP-файла. Если указанный HLP-файл не отображается, Windows Help его открывает. В противном случае никаких действий не происходит. |
|||||
HELP_HELPONHELP |
Отображает файл WINHELP.HLP, предоставляющий справочную информацию об использовании справочной системы Windows. Обычно присутствует в приложениях Windows 3.x, обеспечивая реакцию на щелчок на опции меню Help On Using Help (Использование справки). В приложениях Windows 95 и Windows NT 4.x вместо HELP_HELPONHELP следует использовать команду HELP_FINDER. |
|||||
HELP_INDEX |
Отображает индекс справочного файла. Обычно используется в приложениях Windows 3.x, когда пользователь выполняет щелчок на опции меню Help Index (Содержание). В приложениях Windows 95 и Windows NT 4.x вместо HELP INDEX следует применять команду HELP_FINDER. |
|||||
HELP_KEY |
Просматривает HLP-файл в поиске разделов, где встречается ключевое слово, на которое указывает параметр dwData. Если ключевому слову соответствует более одного раздела, все они перечисляются в диалоговом окне. |
|||||
HELP_MULTKEY |
Просматривает HLP-файл в поиске разделов, в которых встречается ключевое слово, соответствующее данному. Параметр dwData указывает на структуру MULTIKEYHELP, которая идентифицирует таблицу ключевых слов и строку ключевых слов. |
|||||
HELP_PARTIALKEY |
Реализует в HLP-файле поиск разделов, где встречается ключевое слово, на которое указывает параметр dwData. Если ключевому слову соответствует более одного раздела, отображается вкладка Index (Предметный указатель). Чтобы справочная система отобразила эту вкладку, можно также задать в качестве ключевого слова пустую строку. |
|||||
HELP_QUIT |
Сообщает справочной системе Windows, что приложение завершило использование справки. HLP-файл закрывается, а окно справки — удаляется. |
|||||
HELP_SETCONTENTS |
Устанавливает контекстный идентификатор для раздела содержания. Справочная система Windows отобразит этот раздел в ответ на команду HELP CONTENTS либо на щелчок на кнопке Contents (Содержание) в окне справки. Параметр dwData определяет 32-разрядный контекстный идентификатор для раздела, который необходимо выделить для содержания. |
|||||
HELP_SETINDEX |
Указывает таблицу ключевых слов, которая должна отображаться в диалоговом окне Help Topics (Разделы справки). |
|||||
HELP_SETPOPUP_POS |
Устанавливает позицию следующего всплывающего окна. Параметр dwData определяет 32-разрядное значение, содержащее данные о позиции. Для объединения горизонтальных и вертикальных координат в единственное значение используется функция MAKELONG. |
|||||
HELP_SETWINPOS |
Устанавливает размер и позицию главного либо вспомогательного окна справки. Параметр dwData указывает на структуру HELPWININFO, описание которой приводится ниже. |
|||||
HELP_TCARD |
Инициирует вывод справки в форме обучающих иллюстраций. Эта команда не может использоваться самостоятельно, а должна комбинироваться с другими командами справки с применением поразрядной операции OR. |
|||||
HELP_WM_HELP |
Приложение может использовать эту команду в ответ на сообщение WM_HELP. В данном случае параметр hWnd должен представлять собой дескриптор элемента управления, передаваемый структуре HELPINFO. Параметр dwData указывает на массив пар DWORD. Первое значение DWORD каждой пары является идентификатором элемента управления, а второе — контекстным идентификатором раздела справки, отображаемого для данного элемента управления. |
|||||
Включаемый файл winuser.h См. также GetMenuContextHelpID, GetWindowContextHelpID, SetMenuContextHelpID, SetWindowContextHelpID Связанные сообщения WM_HELP, WMJTCARD Описание структуры HELPWININFO typedef struct { int wStructSize; int x ; int y; int dx; int dy; int wMax; TCHAR rgchMember [2] ; } HELPWININFO; Члены wStructSize int: Размер структуры в байтах. х int: Координата X верхнего левого 'угла окна йа экране. |
||||||
y |
int: Координата Y верхнего левого угла окна на экране. |
|||||
dx |
int: Ширина окна в пикселях. |
|||||
dy |
int: Высота окна в пикселях. |
|||||
wMax |
int: Указывает способ отображения окна. Этот член может представлять собой одно из состояний отображения, доступных через функцию ShowWindow. |
|||||
rgchMember |
ТСНАЩ2]: Имя окна. |
|||||
Пример |
Пример этой функции содержится в листинге 28.1. |
|||||
Сообщение WM HELP • Windows 98 • Windows 2000 |
||||||
Описание |
WM_HELP — сообщение, отправляемое приложению, когда пользователь запрашивает контекстно-зависимую справку. Это может быть результатом нажатия на клавишу F1 либо щелчка на значке Help (если таковой имеется) заголовка окна с последующим щелчком на элементе управления, окне или пункте меню. Обычно приложение отвечает на это сообщение, генерируя команду HELP WM HELP при помощи функции WinHelp с использованием структуры HELPINFO. |
|||||
Параметры |
||||||
wParam |
WPARAM: He используется. |
|||||
IParam |
LPHELPINFO: Указатель на структуру HELPINFO, идентифицирующую запрос справки. Описание структуры HELPINFO приводится ниже. |
|||||
Возвращаемое значение |
BOOL: Если приложение обрабатывает это сообщение, оно должно вернуть TRUE. |
|||||
См. также |
WinHelp |
|||||
Связанные сообщения \VM_TCARD |
||||||
Описание структуры HELPINFO typedef struct tagHELPINFO { UINT cbSize; int iContextType; int iCtrlld; HANDLE hltemHandle; DWORD dwContextld; POINT MousePos ; } HELPINFO, *LPHELPINFO; |
||||||
Члены |
||||||
cbSize |
UINT: Размер структуры в байтах. |
|||||
iContextfype |
int: Тип контекста, для которого запрашивается справка. Если справка запрашивается для пункта меню, используется значение HELPINFO MENUITEM. Если справка запрашивается для элемента управления или окна, этот член принимает значение HELPINFO_WINDOW. |
|||||
iCtrlld |
int: Идентификатор окна либо элемента управления, если iContextType равно HELPINFO_WINDOW. В противном случае это идентификатор элемента меню. |
|||||
hltemHandle |
HANDLE: Дескриптор дочернего окна либо элемента управления, если iContextType равно HELPINFO_WINDOW. В противном случае это дескриптор связанного меню. |
|||||
dwContextld |
DWORD: Идентификатор контекстной справки окна или элемента управления. |
|||||
MousePos |
POINT: Координаты курсора мыши на экране. |
|||||
Пример |
Пример использования этого сообщения содержится в листинге 28.2. |
|||||
Сообщение WM TCARD • Windows 98 • Windows 2000 |
||||||
Описание |
Справочная система Windows отправляет приложению сообщение WM_TCARD, когда пользователь выполняет щелчок на кнопке, связанной с макросом справки Tcard, либо другое действие в течение сеанса работы с обучающими иллюстрациями. |
|||||
Параметры |
||||||
wParam |
WPARAM: Выполненное пользователем действие. Может принимать любое значение из перечисленных в табл. 28.4. |
|||||
IParam |
LPARAM: Дополнительные данные в зависимости от значения wParam. |
|||||
Таблица 28.4 Значения параметра wParam сообщения WM_TCARD |
||||||
Значение |
Описание |
|||||
HELP_TCARD_DATA |
Пользователь щелкнул на кнопке. Параметр dwData содержит 32-разрядное значение, определенное автором справки. |
|||||
HELP_TCARD_NEXT |
Пользователь щелкнул на кнопке Next. |
|||||
HELP_TCARD_OTHER_CALLER |
Другое приложение запросило справку в форме обучающих иллюстраций. |
|||||
IDABORT |
Пользователь щелкнул на кнопке Abort (Прервать). |
|||||
IDCANCEL |
Пользователь щелкнул на кнопке Cancel (Отмена). |
|||||
IDCLOSE |
Пользователь закрыл сеанс работы с обучающими иллюстрациями. |
|||||
IDHELP |
Пользователь щелкнул на кнопке Help (Справка). |
|||||
IDIGNORE |
Пользователь щелкнул на кнопке Ignore (Игнорировать). |
|||||
IDNO |
Пользователь щелкнул на кнопке No (Нет). |
|||||
IDOK |
Пользователь щелкнул на кнопке ОК. |
|||||
IDRETRY |
Пользователь щелкнул на кнопке Retry (Повтор). |
|||||
IDYES |
Пользователь щелкнул на кнопке Yes (Да). |
|||||
Возвращаемое значение |
||||||
LRESULT: Приложение должно возвращать значение 0. |
||||||
См. также |
WinHelp |
|||||
Связанные сообщения |
||||||
WM_HELP |
||||||
Пример |
В следующем примере инициируется сеанс использования справки в форме обучающих иллюстраций. Приложение отвечает на сообщения WM_TCARD со значениями IDOK, IDCANCEL, IDABORT параметра wParam. Кроме того, обрабатывается сообщение HELP_TCARD_DATA, связанное с выбором в течение сеанса соответствующего переключателя. |
|||||
Си. \local-sources\chap28\28-01.txt |
||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.