Перезаписать стандартное поведение F1 справки Windows
У меня есть простое приложение MFC, где я хочу настроить функции кнопки справки, предоставляемые приложением. При нажатии кнопки F1 или справки открывается страница поддержки справки Windows по умолчанию. Как я могу отключить это поведение по умолчанию, и оно ничего не показывает?
Под ничего не показывать, я имею в виду не показывать страницу поддержки окон по умолчанию. В идеале, когда я должен нажать F1 или нажать кнопку справки, он не должен открывать окна.
2 ответа
//Free the string allocated by MFC at CWinApp startup.
//m_pszHelpFilePath is the member variable of CWinApp that stores the
//location to default help window.
//initialize it to an empty string just to be extra sure that default windows
//support page location is never found.
//This needs to be set before CWinApp::InitInstance() is called.
free((void*)m_pszHelpFilePath);
m_pszHelpFilePath = _tcsdup(_T(""))
В MainFrame.cpp объявите карту сообщений:
BEGIN_MESSAGE_MAP(MainFrame, CWinApp)
ON_MESSAGE(WM_COMMANDHELP, OnCommandHelp)
END_MESSAGE_MAP()
Затем позвоните OnCommandHelp()
это обработчик сообщений, который будет использоваться для обработки F1 в отключенном режиме.
LRESULT MainFrame::OnCommandHelp(WPARAM wParam, LPARAM lParam)
{
CWnd *pWnd = GetFocus();
if (pWnd != NULL)
{
CWinApp* theApp = AfxGetApp();
CString helpFilePath = theApp->m_pszHelpFilePath;
// we have a control with the focus, quit help display
::WinHelp(m_hWnd, helpFilePath, HELP_QUIT, NULL);
return TRUE;
}
return FALSE; // let default handling process it
}
Здесь вызывается WinHelp(), который запускает справку Windows (Winhelp.exe) и передает дополнительные данные, которые указывают на характер справки, запрашиваемой приложением. HELP_QUIT
в качестве одного из параметров закрывает запрашиваемую страницу поддержки справки Windows по умолчанию.
Кроме того, не забудьте объявить OnCommandHelp()
в MainFrame.h:
afx_msg LRESULT OnCommandHelp(WPARAM wParam, LPARAM lParam);
15 марта 2006 г. - MS объявляет о том, что WinHelp устарела. Во время обсуждений с MVP группа поддержки Microsoft объявила сегодня, что WinHelp устарела (прекращена). WinHelp спроектирован таким образом, что нам пришлось бы переписать его с нуля, чтобы соответствовать стандартам кода Vista. И этот подход не имеет смысла, учитывая, что у нас есть две другие справочные системы в Vista.
Для получения дополнительной информации см. Также для ваших нужд:
Следующий текст ниже был процитирован из:
История разработки для Windows Vista и Windows Server 2008: Руководство по совместимости приложений
Поддержка двигателя поддержки
Microsoft стремится предоставлять технологию справки и поддержки на платформе Windows и будет продолжать исследовать новые решения для разработчиков программного обеспечения. Следующая информация разъясняет поддержку в Windows Vista и кодовом имени Windows Server "Longhorn" для четырех технологий справки Microsoft: справка Windows, справка HTML 1.x, центр справки и поддержки и клиент платформы поддержки.
Справка Windows - WinHlp32.exe
Справка Windows WinHlp32.exe - это справочная программа, включенная в версии Microsoft Windows, начиная с операционной системы Microsoft Windows 3.1. Программа справки Windows (WinHlp32.exe) требуется для отображения 32-разрядных файлов содержимого справки с расширением имени ".HLP". Справка Windows устарела для Windows Vista и Windows Server под кодовым названием "Longhorn". Чтобы просмотреть 32-разрядные файлы справки с расширением имени.HLP в Windows Vista и кодовое имя Windows Server "Longhorn", вам потребуется загрузить и установить WinHlp32.exe из центра загрузки Microsoft. Microsoft настоятельно рекомендует разработчикам программного обеспечения прекратить использование приложения справки Windows в Vista. Разработчикам программного обеспечения, которые поставляют программы, основанные на файлах.HLP, рекомендуется перевести свой опыт справки в другой формат файла справки, такой как CHM, HTML или XML. Вам также необходимо изменить вызовы с WinHelp() API на новый источник контента. Несколько сторонних инструментов доступны, чтобы помочь авторам в преобразовании контента из одного формата в другой.
HTML Help 1.x (HH.exe)
Справка Microsoft HTML 1.x (HH.exe) - это справочная система, включенная в выпуски Windows, начиная с Windows 98. Справка HTML требуется для отображения скомпилированных файлов справки с расширением имени файла.CHM. Справка HTML будет поставляться в Windows Vista и под кодовым именем Windows Server "Longhorn". Тем не менее, будут сделаны только критические обновления двигателя. Никакие новые функции или улучшения не будут добавлены в механизм справки HTML для Windows Vista и кодовое имя Windows Server "Longhorn" или будущих выпусков Windows.