gpt4 book ai didi

windows - 覆盖默认的 F1 Windows 帮助行为

转载 作者:可可西里 更新时间:2023-11-01 10:03:06 27 4
gpt4 key购买 nike

我有一个简单的 MFC 应用程序,我想在其中自定义应用程序提供的帮助按钮功能。单击 F1 或帮助按钮时,默认情况下会打开 Windows 帮助支持页面。我怎样才能禁用此默认行为并使其不显示任何内容?

什么都不显示,我的意思是不显示默认的 Windows 支持页面。理想情况下,当我应该按 F1 或单击帮助按钮时,它应该不会打开任何窗口。

最佳答案

//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 中,声明 MessageMap:

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 作为其参数之一,关闭请求的默认窗口帮助支持页面。

此外,不要忘记在 MainFrame.h 中声明 OnCommandHelp():

afx_msg LRESULT OnCommandHelp(WPARAM wParam, LPARAM lParam);

关于windows - 覆盖默认的 F1 Windows 帮助行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46697290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com