Гиперссылки в нижнем колонтитуле CTaskDialog - PullRequest
2 голосов
/ 26 марта 2019

Я читал эту статью:

Статья

Sample

Это ясно показывает, гиперссылки поддерживаются в нижнем колонтитуле Я не могу понять, как это сделать. Мне не нужен буквальный URL в тексте, но другой текст, который ссылается на справочную статью в программе.

1 Ответ

1 голос
/ 27 марта 2019

Это работает:

#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;
}

Однако есть еще две проблемы:

  1. CTaskDialog не имеет вызова API GetSafeHWnd, поэтому я не могуне знаю, как установить его в качестве родителя.

  2. OnHyperlinkClick является общим, поэтому, если у вас есть несколько ссылок в диалоговом окне задачи, вам может потребоваться проверить фразу, чтобы решить, как выхочу справиться с этим.

...