Программирование на Visual Basic

Visual Basic справка

Наверняка любой программист хочет, чтобы его программы были удобныи понятны для любого пользователя, даже для того кто пока ещё долгоцелится мышкой в оконный крестик. Этого можно добиться используя Windows-справку. Существует много способов подключить справкук программе на VB. О нескольких из них вы узнаете из этой статьи.

Подключение справки через Windows-API

Файл Windows-справки, естественно можно подключить через Windows-API. Для этого служит функция WinHelp,расположенная в библиотеке User32. Объявляется эта функция следующим образом:

Declare Function WinHelp Lib "user32" Alias "WinHelpA" ( _  ByVal hwnd As Long, _  ByVal lpHelpFile As String, _  ByVal wCommand As Long, _  ByVal dwData As Long) As Long"Не забывайте, что если вы объявляете функцию внутри формы,"необходимо добавлять Private.

Объявив функцию можно приступать к её использованию (замечу,что эта функция должна возвращать значение). Параметры функции расшифровываются следующим образом:

  • hwnd - Handle формы, в VB его можно получить "Me.hWnd"
  • lpHelpFile-Понятно, что это имя файла справки, путь должен быть указан точно.
  • dwData - Значение этого параметра зависит от значения wCommand
  • wCommand - Параметр определяющий, что именно будет выведено на экран

Именно wCommand управляет выводом справки. Его значения могут бытьразличны, но в основном они укладываются в таблицу:
HELP_CONTEXT = &H1Выводит раздел, номер которого указан в dwData
HELP_QUIT = &H2Закрывает указанный Help-файл
HELP_INDEX = &H3Выводит предметный указатель справочного файла
HELP_FINDER = &HBВыводит окно Help Topics и активирует вкладку выбраннуюв прошлый раз.
HELP_TAB = &HFВыводит окно Help Topics и активирует вкладку определённуюв dwData(0 - Contents, -2 - Index, -1 - Find).
HELP_CONTENTS = &H3&Выводит раздел Contents. Необходима для совместимостис болле ранними версиями Help-файлов
HELP_HELPONHELP = &H4Выводит справку о справке.
HELP_SETINDEX = &H5Устанавдивает текущий индекс, для многоиндексовойсправочной системы.
HELP_SETCONTENTS = &H5&Делает раздел, указанный в dwData, оглавлением(Contents).
HELP_CONTEXTPOPUP = &H8&Отображает раздел идентифицированный номером контекста.
HELP_FORCEFILE = &H9&Создает справочный файл, в котором текст отображается лишь одним шрифтом.
HELP_HELPKEY = &H101&Отображает справку по конкретному ключевому слову.
HELP_COMMAND = &H102&Отображает справку по конкретной команде.
HELP_PARTIALKEY = &H105&Вызывает систему поиска в Windows Help.

Прдключение справки через Common Dialog

Кроме Windows API можно использовать элемент управления Common Dialog. Он позволяет без особых усилий работать с файлами справки.
Работа с ним не требует никаих объяснений, достаточно только добавить на форму Common Dialog (Если его нет в инструментарии(ToolBox) нажмите CTRL+T, или выберитеComponents в меню Project, и поищите в списке), присвоить ему имя cdlCommon, и скопировать в форму следующий код:

Option ExplicitPrivate Sub Form_Load()cdlCommon.HelpFile = "Help/vb5.hlp"End SubPrivate Sub Form_MouseMove( _Button As Integer, _Shift As Integer, _X As Single, _Y As Single)If Button = 1 ThencdlCommon.HelpCommand = cdlHelpHelpOnHelpcdlCommon.ShowHelpEnd IfIf Button = 2 ThencdlCommon.HelpCommand = cdlHelpContextcdlCommon.HelpContext = 700cdlCommon.ShowHelpEnd IfEnd Sub

К слову скажу, что вместо констант Common Dialog, можно использоватьконcтанты из таблицы приведённой выше.

Использование свойства HelpContextID

Последним, рассмотренным мной способом подключения файла справки к программе на VB будетиспользование свойства HelpContextID. Само по себе это свойство отвечает за вывод определённогораздела справки при нажатии клавиши F1, когда в фокусе находится определённый элемент. Нос помощью нехитрого трюка можно "нажимать" F1 программно. Всё объяснит следующий код. Простовставьте его в пустую форму:

Private Sub Form_Click()Me.HelpContextID = 700SendKeys "{F1}"End SubPrivate Sub Form_Load()App.HelpFile = "help/vb5.hlp"End Sub

Итак мы рассмотрели три способа подключения файла справки к программе на VB. Добавлю лишь, что весь приведённый здесь код работает на моём компьютере, в Microsoft Visual Basic5.0 Enterprise Edition .

Hosted by uCoz