Это работает:
#include "stdafx.h"
#include "CMyTaskDialog.h"
IMPLEMENT_DYNAMIC(CMyTaskDialog, CTaskDialog)
CMyTaskDialog::CMyTaskDialog(_In_ const CString& strContent,
_In_ const CString& strMainInstruction,
_In_ const CString& strTitle,
_In_ int nCommonButtons,
_In_ int nTaskDialogOptions, _In_ const CString& strFooter)
: CTaskDialog(strContent, strMainInstruction, strTitle, nCommonButtons, nTaskDialogOptions, strFooter)
{
}
CMyTaskDialog::~CMyTaskDialog()
{
}
HRESULT CMyTaskDialog::OnHyperlinkClick(const CString& strHref)
{
HWND hwnd =
HtmlHelp(
GetDesktopWindow(),
_T("d:\\MeetSchedAssist.chm::/") + strHref,
HH_DISPLAY_TOPIC,
NULL);
return S_OK;
}
Однако есть еще две проблемы:
CTaskDialog
не имеет вызова API GetSafeHWnd
, поэтому я не могуне знаю, как установить его в качестве родителя.
OnHyperlinkClick
является общим, поэтому, если у вас есть несколько ссылок в диалоговом окне задачи, вам может потребоваться проверить фразу, чтобы решить, как выхочу справиться с этим.