Перезаписать стандартное поведение 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.

Другие вопросы по тегам