Контекстно зависимая справка это

Обновлено: 18.05.2024

Как правильно пишется слово "операторзависимость"? Спасибо.

Ответ справочной службы русского языка

В словарях этого слова нет, мы рекомендуем вариант: оператор озависим ость.

Добрый день! Подскажите, пожалуйста, как правильно написать слово "непреодолим озависим ый" - раздельно или слитно.

Ответ справочной службы русского языка

Такое сочетание нигде не употребляется, мы не рекомендуем его использовать.

Как правильно (допустимо) писать: алк озависим ый, алкоголезависимый, алкогольно-зависимый?

Ответ справочной службы русского языка

Уважаемая "Грамота", добрый день! Я уже обращался с этим вопросом, но ответа, к сожалению, пока не поступило, поэтому спрошу еще раз: скажите, пожалуйста, как следует писать следующее слово (словосочетание?): дикторо (не)зависимый/ дикторо(не)зависимый/ дикторо-(не)зависимый. Прошу также объяснить правило написания подобных случаев (ибо в словаре РАН зафиксирована, например, норма "контекстно независимый", но при этом "инсулин озависим ый" и "ресурс озависим ый"). Заранее спасибо! Очень нужна ваша помощь!

Ответ справочной службы русского языка

В орфографических словарях такое слово не зафиксировано. Соответствует языковым тенденциям написание дикторонезависимый. Ср. со словами, в которых первая часть не содержит суффикса: кодонезависимый, энергонезависимый.

Здравствуйте! как правильно писать: "дозО-зависимый" или дозА-зависимый", И нужно ли тире? Спасибо

Ответ справочной службы русского языка

Словарная фиксация отсутствует. Правилам соответствует написание: доз озависим ый.

Добрый день!
Подскажите, пожалуйста, как корректнее написать: контекстно-зависимый, контекстно зависимый или контекстн озависим ый?
Спасибо!

Ответ справочной службы русского языка

Правильно: контекстно зависимый. См.: Русский орфографический словарь РАН / Под ред. В. В. Лопатина, О. Е. Ивановой. – 4-е изд., испр. и доп. – М., 2012.

Здравствуйте! Подскажите, как пишется слово инсулин(о)независимый.
Я видела ваш ответ на вопрос 200068 (инсулин озависим ый), но сомнения остались.
Заранее спасибо.

Ответ справочной службы русского языка

Как правильно: налоговый контроль НАД сделками с взаим озависим ыми лицами, налоговый контроль ЗА сделками с взаим озависим ыми лицами или налоговый контроль сделок с взаим озависим ыми лицами? Заранее спасибо.

Ответ справочной службы русского языка

Все три варианта возможны с точки зрения грамматики.

Прошу разъяснить как правильно писать: ресурс озависим ый или ресурсн озависим ый, или возможен еще вариант?

Ответ справочной службы русского языка

Ответ справочной службы русского языка

Ответ справочной службы русского языка

Здравствуйте! Решил повторить свой вопрос, т.к. уже трое суток жду ответа. Подскажите, как будет правильно: доз озависим ый или дозазависимый?
Заранее спасибо.

Ответ справочной службы русского языка

Ответ справочной службы русского языка

Зачастую с озависим ый даже не осознает того, что точно так же нуждается в помощи. Также слитно или раздельно? Спасибо за своевременный ответ.

Ответ справочной службы русского языка

Здравствуйте! Буду благодарна за Ваш ответ на мой вопрос: как правильно написать: "наркотически зависимый" или "наркотическизависимый" (раздельно или слитно). Спасибо за ответ

Ответ справочной службы русского языка

Такой вариант не зафиксирован в словарях, его нельзя признать корректным. Лучше: _зависимый от наркотиков_ или _нарк озависим ый_.

В этом заметке описываются правила назначения идентификаторов контекстов справки и другие проблемы справки в MFC. Для поддержки контекстно-зависимой справки требуется компилятор справки, доступный в Visual C++.

Помимо реализации контекстной справки с помощью WinHelp, MFC также поддерживает использование HTML-справки. Дополнительные сведения об этой поддержке и программировании с помощью HTML-справки см. в разделе Справка HTML: Context-Sensitive Справка по программам.

Поддерживаемые типы справки

в Windows приложениях реализовано два типа контекстно-зависимой справки. Первая, называемая "Справка F1", включает в себя запуск WinHelp с соответствующим контекстом, основанным на текущем активном объекте. Второй — режим "Shift + F1". В этом режиме курсор мыши меняется на курсор справки, и пользователь переходит к щелчку объекта. На этом этапе открывается WinHelp, чтобы получить справку для объекта, который щелкнул пользователь.

В Microsoft Foundation Classes реализованы обе эти формы справки. Кроме того, платформа поддерживает две простые команды справки, указатель справки и использование справки.

Файлы справки

Классы Microsoft Foundation предполагают наличие одного файла справки. Файл справки должен иметь то же имя и путь, что и приложение. Например, если исполняемый файл является C:\MyApplication\MyHelp.exe файл справки должен быть К:\мяппликатион\михелп.хлп. Путь задается с помощью переменной-члена M_pszHelpFilePathкласса CWinApp.

Диапазоны контекста справки

Реализация MFC по умолчанию требует, чтобы программа соследовала некоторым правилам назначения идентификаторов контекста справки. Эти правила представляют собой диапазон идентификаторов, выделенных для конкретных элементов управления. Эти правила можно переопределить, предоставив разные реализации различных функций-членов, связанных с справкой.

Простые команды "Справка"

Существует две простые команды справки, реализуемые Microsoft Foundation Classes:

ID_HELP_INDEX который реализуется с помощью CWinApp:: онхелпиндекс

ID_HELP_USING который реализуется с помощью CWinApp:: онхелпусинг

Первая команда отображает Индекс справки для приложения. Во втором выводится справка по использованию программы WinHelp.

Справка Context-Sensitive (Справка F1)

Клавиша F1 обычно преобразуется в команду с ИДЕНТИФИКАТОРом ID_HELP ускорителем, помещенным в таблицу сочетаний клавиш главного окна. Команда ID_HELP может также быть создана с помощью кнопки с ИДЕНТИФИКАТОРом ID_HELP в главном окне или в диалоговом окне.

CWinApp::OnHelp пытается запустить WinHelp в следующем порядке:

Отправляет команду ID_DEFAULT_HELP в главное окно. При этом вызывается Справка по умолчанию. Эта команда обычно сопоставлена с CWinApp::OnHelpIndex .

Чтобы глобально переопределить базовые значения идентификатора по умолчанию (например, 0x10000 для команд и 0x20000 для ресурсов, таких как диалоговые окна), приложение должно переопределить метод CWinApp:: WinHelp.

WM_COMMANDHELP

lParam
Содержит контекст справки, доступный в настоящее время. значение lParam равно нулю, если контекст справки не определен. Реализация OnCommandHelp может использовать идентификатор контекста в OnCommandHelp для определения другого контекста или просто передать его в CWinApp::WinHelp .

wParam
Не используется и будет равняться нулю.

Если OnCommandHelp функция вызывает CWinApp::WinHelp , она должна возвращать OnCommandHelp . Возврат значения true останавливает маршрутизацию этой команды на другие классы и другие окна.

Режим справки (Shift + Справка F1)

После ввода этого режима курсор мыши будет отображаться во всех областях приложения, даже если в приложении обычно отображается собственный курсор для этой области (например, граница изменения размера вокруг окна). Пользователь может использовать мышь или клавиатуру для выбора команды. Вместо выполнения команды отображается справка по этой команде. Кроме того, пользователь может щелкнуть видимый объект на экране, например кнопку на панели инструментов, и Справка будет отображаться для этого объекта. Этот режим справки предоставляется CWinApp::OnContextHelp .

Во время выполнения этого цикла все вводы с клавиатуры неактивны, за исключением ключей, обращающихся к меню. Кроме того, перевод команд по-прежнему выполняется с помощью, PreTranslateMessage позволяя пользователю нажать клавишу сочетания клавиш и получить справку по этой команде.

Если в функции выполняются определенные переводы или действия PreTranslateMessage , которые не должны выполняться во время смены и режима справки F1 PreTranslateMessage , CWinApp перед выполнением этих операций следует проверить m_bHelpMode член. CDialog Реализация PreTranslateMessage проверяет это перед вызовом IsDialogMessage , например. Это отключает клавиши "навигации в диалоговом окне" в немодальных диалоговых окнах во время SHIFT + F1. Кроме того, в CWinApp::OnIdle этом цикле все еще вызывается.

Если пользователь выбирает команду из меню, он обрабатывается как Справка по этой команде (с помощью WM_COMMANDHELP см. ниже). Если пользователь щелкает видимую область окна приложения, выполняется определение того, является ли оно неклиентским щелчком мыши или щелчком клиента. OnContextHelp управляет автоматическим сопоставлением клиентов щелчками. Если щелкнуть Клиент, он отправляет WM_HELPHITTEST в окно, которое было выбрано. Если это окно возвращает ненулевое значение, это значение используется в качестве контекста для справки. Если он возвращает ноль, OnContextHelp то пытается выполнить родительское окно (и его неудачное завершение, его родительский элемент и т. д.). Если контекст справки определить нельзя, по умолчанию отправляется команда ID_DEFAULT_HELP в главное окно, которое затем (обычно) сопоставлено с CWinApp::OnHelpIndex .

WM_HELPHITTEST

ЛОВОРД (lParam) содержит координату устройства оси X, в которой была нажата мышь относительно клиентской области окна.

HIWORD (lParam) содержит координаты оси Y.

wParam
не используется и будет равняться нулю. Если возвращаемое значение не равно нулю, то WinHelp вызывается с этим контекстом. Если возвращаемое значение равно нулю, то в родительском окне запрашивается справка.

Поддержка мастера приложений MFC и МАКЕХМ

Мастер приложений MFC создает необходимые файлы для создания файла справки (CNT и HPJ-файлов). Он также включает ряд предварительно созданных RTF-файлов, которые принимаются компилятором справки Майкрософт. Многие из этих статей завершены, но для конкретного приложения их может потребоваться изменить.

Автоматическое создание файла "сопоставление справки" поддерживается служебной программой с именем МАКЕХМ. Служебная программа МАКЕХМ может перевести ресурс приложения. H-файл в файл сопоставления справки. Пример:

будет преобразован в:

Этот формат совместим с механизмом компилятора справки, который сопоставляет идентификаторы контекста (числа с правой стороны) с именами разделов (символы в левой части).

Исходный код для МАКЕХМ доступен в примере Макехмпрограмм программирования MFC.

Добавление поддержки справки после запуска мастера приложений MFC

Существует две версии AfxMessageBox , одна для использования со СТРОКОВЫМ идентификатором и другая для использования с указателем на String ( LPCSTR ):

В обоих случаях имеется необязательный идентификатор справки.

6.2.1. КОМАНДА ЧТО ЭТО?

Команда Что это? ( What ' s This ?) обеспечивает пользователя контекстной ин формацией относительно любого объекта, представленного на экране, включая элементы управления на панелях свойств и других диалоговых панелях. Эта форма контекстной помощи пользователю называется контекстно-зависимой подсказ кой. Как показано на рис. 6.6, доступ пользователя к этой команде может быть реа лизован одним из следующих способов:

• Через выпадающее меню Справка первичного окна.

• С помощью кнопки на панели инструментов.

Рекомендуемые файлы

• С помощью кнопки, расположенной в полосе заголовка вторичного окна.

• Через всплывающее меню конкретного объекта.

Рис. 6.6. Различные методы доступа к команде Что это?

Когда пользователь выбирает команду Что это? из меню Справка или нажимает соответствующую кнопку на панели инструментов, система переходит во вре менный режим (режим подсказки). Визуальным признаком этого режима служит изменение формы указателя (рис.6.7). Альтернативным средством перехода в режим подсказки является комбинация клавиш Shift >+ Fl .

Рис. 6.7. Вид указателя в режиме контекстно-зависимой подсказки

Указатель должен принимать соответствующий вид только над тем окном, в котором пользователь хочет получить контекстно-зависимую подсказку, то есть над тем активным окном, которое находится в режиме подсказки

Если в этом режиме пользователь щелкает ЛКМ на интересующем его объекте, отображается всплывающее окно контекстно-зависимой подсказки для данного объек та. Выводимая подсказка должна обеспечивать краткое пояснение относительно назначения объекта и способов его использования (рис. 6.8). Как только окно подсказ ки появится на экране, указатель должен быть восстановлен в его обычном состоянии.

Рис. 6.8. Всплывающее окно контекстно-зависимой подсказки

Если пользователь нажимает какую-либо клавишу-акселератор, которая относится к окну, находящемся в режиме подсказки, вы можете отобразить окно подсказки для команды, связанной с этой клавишей.

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

Во-первых, если пользователь в режиме подсказки выбирает заголовок меню, расположенный в полосе меню, или пункт каскадного меню, сохраните для них ос новной режим до тех пор, пока пользователь не выберет один из пунктов меню, и только после этого отобразите контекстно-зависимую подсказку для этого пункта.

Во-вторых, если пользователь щелкает на каком-либо объекте ПКМ и этот объект поддерживает всплывающее меню, сохраните режим подсказки, пока пользователь не выберет один из пунктов меню или не закроет его. Если объект не поддерживает всплывающее меню, то эффект должен быть таким же, как при использовании ЛКМ.

Наконец, если выбранный объект или позиция не поддерживает контекстно- зависимую подсказку или вывод подсказки неуместен, следует запретить переход в режим подсказки.

Если пользователь повторно выбирает команду Что это?, в том числе ис пользуя комбинацию клавиш Shift >+ Fl , или нажимает клавишу Esc >, ре жим подсказки отменяется. При этом указатель восстанавливается в его обыч ном состоянии.

Когда пользователь выбирает команду Что это ? из всплывающего меню объек та, порядок взаимодействия немного отличается от описанного выше. Поскольку пользователь в этом случае идентифицирует объект, нажимая ПКМ, нет необходи мости устанавливать режим подсказки. Вместо этого можно сразу отобразить всплывающее окно контекстно-зависимой подсказки для выбранного объекта.

В этом случае в качестве быстрой клавиши используется клавиша F 1; это означает, что при нажатии F 1 отображается окно контекстно-зависимой подсказки для того объекта, на котором установлен фокус ввода.

Правила создания контекстно-зависимой подсказки

Как один из допустимых вариантов, может быть реализована контекстно-зави симая справка для типов файлов, поддерживаемых вашим приложением. Это по зволит пользователю, выбрав команду Что это? из всплывающего меню пиктог раммы файла, получить о нем необходимую информацию (рис. 6.9).

Описание: Рис.6.9.jpg

Рис. 6.9. Контекстно-зависимая справка для пиктограммы файла

6.2.2. ВСПЛЫВАЮЩАЯ ПОДСКАЗКА

Другой формой контекстной помощи пользователю является всплывающая под сказка ( tooltips ). Всплывающая подсказка — это небольшое всплывающее окно, которое содержит название элемента управления, не имеющего текстовой метки. Наиболее распространенный вариант использования такой подсказки — пояснения для кнопок панели инструментов, которые имеют только графическое обозначение (рис. 6.10).

Рис. 6.10. Всплывающая подсказка для кнопки панели инструментов

Всплывающая подсказка появляется возле указателя, если он находится над кноп кой в течение некоторого (достаточно короткого) интервала времени и остается на экране, пока пользователь не нажмет кнопку мыши или не переместит указатель, либо в течение установленного периода времени. Если пользователь перемещает указатель на другой элемент управления, поддерживающий всплывающую подсказ ку, задержка игнорируется, и новая подсказка отображается немедленно, заменяя предыдущую.

Для стандартных элементов управления система автоматически обеспечивает всплывающую подсказку. Если вы создаете собственные окна всплывающей под- сказкуи обеспечьте их согласованность с существующими системными окнами подсказки.

Как уже было сказано, в строке состояния наряду с информацией о текущей ситуации могут отображаться краткие сведения о выбираемых пунктах меню и кноп ках панели инструментов, как показано на рис. 6.11. Как и при использовании всплы вающей подсказки, соответствующее окно должно быть активным. Описание инте ресующего элемента отображается в строке состояния, когда пользователь перемещает курсор на кнопку панели инструментов или на один из пунктов меню.

Рис. 6.11. Вывод справки о пункте меню в строке состояния

6.2.4. КНОПКА СПРАВКА

Рис. 6.12. Использование кнопки Справка во вторичном окне

Если Вам понравилась эта лекция, то понравится и эта - 6 - Съемка. Виды съемок.

С развитием средств оперативной помощи пользователям через Интернет многие приложения обеспечивают доступ к ним также посредством кнопки Справка.

Вместе с тем, следует иметь в виду, что использование команды Справка является дополнительной, вспомогательной формой контекстной помощи пользователю, которая не должна подменять контекстно-зависимую подсказку, вызываемую по команде Что это? Нельзя также рассчитывать на то, что наличие подробной спра вочной информации может компенсировать недостатки неудачно спроектированного интерфейса вторичных окон.

Некоторые реализации контекстно-зависимой справки демонстрировали такое поведение, когда при наведении указателя на область, связанную с подсказкой, она мгновенно появлялась, и в момент, когда указатель покидал область - исчезала. Данное поведение характеризуется двумя недостатками: во-первых, если указатель был перемещен поверх области помощи и находится поверх окна, то появляющееся окно может серьезно раздражать; во-вторых, если окно помощи содержит ссылки либо слишком много текста, при этом обладая возможностью прокрутки, то при попытке перемещения указателя с области, вызвавшей появление окна помощи, на самое окно, указатель покинет область вызова помощи - и окно исчезнет.

В дополнение к данным двум недостаткам, система контекстно-зависимой помощи может быть не столь практичной для нас, разработчиков страницы. Весь скрипт и элементы

Осуществляем задержку перед открытием и закрытием окна помощи

При наведении указателя на элемент пользовательского интерфейса, обладающий подсказкой, на веб-странице либо приложении Windows подсказка появляется не сразу, а через некоторое время. Система контекстно-зависимой помощи в некоторых случаях мгновенно показывает окно помощи после того, как указатель был только наведен на область. Данная скорость может доставлять неудобства пользователю, если он перемещает указатель по всему экрану. Даже если пользователю не было никакой необходимости видеть данную подсказку, перемещение указателя по экрану может вызвать появления окна помощи. В то же время данные окна моментально исчезают в случае, если пользователь выйдет за границы области, ну а мигание окна само по себе может быть очень раздражающим.

JavaScript предоставляет функцию setTimeout(expression, delay) для осуществления задержки. Используя setTimeout, важно понимать, что функция не блокирует - то есть когда достигается выражение setTimeout, оно добавляет выражение в очередь на выполнение после определенной задержки. Строки JavaScript будут мгновенно выполнены после функции setTimeout. Другими словами, задержка, которая производится до выполнения определенного выражения, является асинхронной. Поток команд не ждет в команде setTimeout пока указанная задержка не пройдет.

Чтобы достичь данного эффекта, я разделил csi_showHelpFloatWindow - который отображает определенное окно помощи - на две функции:

  • csi_showHelpFloatWindow - принимает тот же набор параметров, что и в исходном варианте, а также еще один параметр - waitDurationInMilliseconds. Параметр waitDurationInMilliseconds указывает количество миллисекунд задержки. Данная функция вызывает csi_showHelpFloatWindowInternal при помощи функции setTimeout.
  • csi_showHelpFloatWindowInternal - выполняет всю работу по отображению окна помощи.

В дополнение, нам необходима переменная флага, которая указывает на то, нужно ли отменить открытие окна или нет. Например, если пользователь наведет указатель на область помощи, то вызывается csi_showHelpFloatWindow, и функция setTimeout указывает, что функция csi_showHelpFloatWindowInternal будет вызвана после 500 миллисекунд, к примеру (полсекунды). Если пользователь перемещает указатель за пределы области до того, как пройдет это время, мы не отобразим окно. Тем не менее, функция csi_showHelpFloatWindowInternal все же будет вызвана - нет никакого способа отменить ее, основываясь на движениях курсора.

Тем самым мы используем флаг для указания того, была ли команда отменена или нет - он установлен в false в csi_showHelpFloatWindow и в true в обработчике события onmouseout области помощи. Когда выполняется функция csi_showHelpFloatWindowInternal, она всего лишь выполняется в случае, если флаг отмены равен false. Поскольку мы можем иметь окна помощи нескольких видов на одной странице (то есть окна помощи с различными windowID), одной флаговой переменной не хватит. Более того, нам необходима флаговая переменная для каждого типа окна помощи. Это исполнимо при использовании массива - как показано в выделенном коде JavaScript:

Когда пользователь наводит указатель на область помощи, нам необходимо установить флаг (csi_cancelOpenArray[windowID]) в true. Это достигается путем обновления функции csi_hideHelpFloatWindow (которая, если вы помните, вызывается из события onmouseout области помощи).

Данный образец повторяется для добавления задержки при выходе из области, в которой окно помощи уже открыто, и закрытия окна помощи. Данная задержка позволяет пользователю перемещать указатель с области помощи на окно с подсказкой, где они могут взаимодействовать с окном (просмотрите демо-версию ниже). Для реализации этого используется другой флаг (csi_cancelCloseArray), который установлен в false при выходе из области помощи (в функции csi_hideHelpFloatWindow ) и установлен в true при наведении указателя на область либо при наведении на само окно. Как и в случае с задержкой до открытия, данный эффект достигается путем разделения функции csi_hideHelpFloatWindow на две:

  • csi_hideHelpFloatWindow - принимает дополнительный входной параметр waitDurationInMilliseconds, который указывает количество миллисекунд паузы между выходом из области окна и закрытием самого окна. Данная функция вызывает csi_hideHelpFloatWindowInternal при помощи функции setTimeout.
  • csi_hideHelpFloatWindowInternal - выполняет всю работу сокрытия окна помощи.

Дополнительно csi_showHelpFloatWindow и событие onmouseover окна помощи устанавливают соответствующий флаг в csi_cancelCloseArray в значение true. Для получения более подбробной информации исследуйте полный скрипт JavaScript и библиотеку кодов в приложении, доступном в конце данной статьи.

Добавляем программно контекстно-зависимую помощь

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

  • JavaScript, необходимый для отображения и сокрытия окон помощи
  • стиль CSS, необходимый для окна помощи (это z-индекс, устанавливающий абсолютную позицию и т.д.)
  • Разметка окна помощи (теги

Класс ContextSensitiveHelp содержит единственный метод, доступный с уровня страницы - AddContextSensitiveHelp, который был неоднократно перегружен. Вы должны передать данный метод как минимум:

  • элементу управления, который служит в качестве области помощи (например, элемент Label либо Image),
  • windowID (произвольная строка используемая для определения окна помощи, которое будет открыто либо закрыто), и
  • указателю ресурса (URL) веб-страницы помощи, которая будет отображена в окне помощи

Вы также можете настроить входные параметры, например, чтобы открывать окно помощи слева либо справа от области, ширину и высоту окна, отступ окна помощи от области, а также время задержки (в миллисекундах) для открытия и закрытия окон помощи. Когда вызывается метод AddContextSensitiveHelp, добавляется нужный код JavaScript или CSS (при необходимости), а также добавляется разметка окна помощи.

К примеру, для того чтобы связать окно помощи с элементом управления Label, названным WelcomeLabel, вы можете добавить следующую строку кода в обработчик события Page_Load:

Чтобы испытать класс ContextSensitiveHelp в действии, загрузите приложение доступное в конце данной статьи.

Вывод

Мы осуществили некоторые значительные улучшения для системы контекстно-зависимой помощи. Мы рассмотрели способ использования JavaScript функции setTimeout для добавления небольшой задержки до того, как отобразим окно помощи, а также как выйти из отображенного окна после того, как указатель покинет область, вызвавшую окно помощи. Более того, мы изучили класс ContextSensitiveHelp, который предоставляет простой метод создания и связывания окна с областью вызова.

Но кое-что все же требует обсуждения, например, необходимо явно указывать высоты и ширину окон помощи, тем самым настроив под содержимое. К примеру, допустим, окно помощи имеет размеры 400x350, но его содержимое составлено в нескольких словах, и было бы неплохо, если окно изменило бы свои размеры под содержимое, например, изменило размеры на 200x150, чтобы уменьшить пустоту в окне. В дополнение, если область помощи находится рядом с краем окна браузера (например, справа или снизу), то окно помощи в обычном случае будет обрублено границами окна. В идеале, система помощи должна рационально расположиться левее либо выше и не дать границам окна браузера обрубить свое окно. Но об этом мы поговорим в других статьях!

Читайте также: