无法找到“F1”键在应用中的工作原理

时间:2013-04-01 13:54:18

标签: visual-c++ mfc

我的应用程序是在MFC中构建的。应用程序执行后,我需要打开exe提供的帮助文件。

但是当我按F1应用程序时会显示一条错误消息,指出无法找到该文件。发生这种情况是因为不存在该名称的此类文件。

有人会考虑如何更改帮助文件本身的名称?好吧,这是无法做到的,我也必须改变路径。

我需要知道F1按钮的功能如何工作以及我在哪里可以找到相同的功能?

我正在使用VC ++ 6.0(我知道它很老了,但我坚持使用它。)

谢谢。

3 个答案:

答案 0 :(得分:3)

要显示您的特定帮助文件,您必须覆盖CWinApp::OnHelp。标准帮助文件的路径存储在CWinApp::m_pszHelpFilePath中。在此示例中,我使用自己的m_path变量。

void CMyApp::OnHelp() 
{
    ::HtmlHelp(((CMainFrame*)AfxGetMainWnd())->m_hWnd,m_path,HH_DISPLAY_TOPIC,NULL);
}

答案 1 :(得分:2)

如果我没记错的话,默认情况下它由CWinApp::OnHelp()处理,所以先看看你对应用程序类的覆盖,你可能会在那里找到ON_COMMAND处理程序。

答案 2 :(得分:1)

我有一个扩展CWinApp的类,因此以这种方式覆盖OnHelp函数:

在标题中:

class MyApp : public CWinApp
{
public:
    afx_msg void OnHelp();
}

在cpp文件中:

BEGIN_MESSAGE_MAP(MyApp, CWinApp)
    ON_COMMAND(ID_HELP, MyApp::OnHelp)
END_MESSAGE_MAP()

void MyApp::OnHelp()
{
    // your own help function
}