![]() |
|
![]() ![]() ![]() |
|
east |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.5.2006 Репутация: 1 Всего: 1 |
Всем привет!
Решил сделать справку для приложения. Приложение SDI, есть сплитер, окно вида разделено на на два вида. Справка сформированная мастером работает как надо, т.е. в панели инструментов нажимаю кнопку со знаком вопроса, а потом на любом месте окна. Если нажать на кнопке панели инструментов, то выдается справка по этой кнопке. Такое же поведение и с меню. Меня интересует как это все работает, т.к. нужно будет добавлять свои пункты меню и кнопки на панель инструментов и соответственно хотелось бы отдельную справку для них. Также отдельную справку нужно организовать для разных видов. Может кто знает какие ресурсы по данному вопросу, пдскажите, пожалуйста или обьясните как это работает. |
|||
|
||||
spyswamp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: нет Всего: 7 |
Загугли по "организация справки MFC". Работает это все достаточно просто, пусть и не сразу очевидно (сам такой штукой пользовался несколько лет назад, результатом остался доволен, но более подробную информацию (имена классов и т.п.), к сожалению сейчас предоставить не могу - названия не помню, а в код глянуть смогу только вечером, если не забуду).
-------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
east |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.5.2006 Репутация: 1 Всего: 1 |
Спасибо за ответ! Запрос по гуглю выдает всякую ерунду. Как я понял этим мало кто занимается и инфу в сети не выставляют кроме msdn. Так что пришлось самому разбираться. Это действительно не сложно.
Если при создании проекта отмечена галочка создания контекстной справки, то при добавлении меню все идентификаторы для справки добавляются автоматом, остается добавить только файл справки. Идентификатор добавляется в файл HTMLDefines.h. Допустим мы добавили пункт меню. Его ID = ID_FILE_NEW. В файле HTMLDefines.h создастся идентификатор справки HID_FILE_NEW. Создаем файл справки для нового пункта меню, например, file_new.htm. Далее в файле с расширением .hhp прописываем данные. В разделе [FILES] вставляем имя файла file_new.htm, в разделе [ALIAS] вставляем hid_file_new=file_new.htm. Теперь для нашего пункта меню будет вызываться созданная нами справка. Теперь создадим справку для представления. Допустим нам нужно представление, созданное на базе CRichEditView. Создаем класс наследник от CRichEditView, например, CMyRichView. Создаем для этого класса идентификатор справки #define HID_MY_RICH_VIEW 0x0100, можно в файле HTMLDefines.h или в файле с расширением .hhp в разделе [MAP]. Также создаем файл справки и прописываем все данные как это делали для пункта меню. Теперь в нашем классе создаем функцию-обработчик сообщения WM_HELPHITTEST. В этой функции делаем вызов справки HtmlHelp(0x0100, 15);. Теперь для нашего вида будет работать справка. |
|||
|
||||
spyswamp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: нет Всего: 7 |
Я тут немного поковырял старье. Нарыл, что делал не прям глобальную справку, а ту, которая в тултипах появляется, если кликнуть на кнопку с вопросиком в заголовке, а потом на интересующий элемент окна.
Для этого у окна должен быть соответствующий стиль. Потом необходимо перегрузить функцию OnHelpInfo и выдать свою справку. Пример кода, в котором выводится свой справочный тултип для каждой строки списка, ниже:
Надеюсь, что это тоже пригодится, если уж кто задумает делать мегасправку по всему приложению, включая эту мелочь. -------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |