CDHtmlDialog

用于创建使用 HTML 而非对话框资源来实现用户界面的对话框。

语法

class CDHtmlDialog : public CDialog, public CDHtmlEventSink

成员

公共构造函数

名称 描述
CDHtmlDialog::CDHtmlDialog 构造 CDHtmlDialog 对象。
CDHtmlDialog::~CDHtmlDialog 销毁 CDHtmlDialog 对象。

公共方法

名称 描述
CDHtmlDialog::CanAccessExternal 可重写,作为访问检查调用,来查看已加载页面上的脚本对象是否可访问控件站点的外部调度。 检查确保调度对脚本编写来说是安全的,或者当前区域允许包含对脚本编写来说不安全的对象。
CDHtmlDialog::CreateControlSite 可重写,用于创建控件站点实例以托管对话框上的 WebBrowse 控件。
CDHtmlDialog::DDX_DHtml_AxControl 在成员变量与 HTML 页上的 ActiveX 控件的属性值之间交换数据。
CDHtmlDialog::DDX_DHtml_CheckBox 在成员变量与 HTML 页上的复选框之间交换数据。
CDHtmlDialog::DDX_DHtml_ElementText 在成员变量与 HTML 页上的任何 HTML 元素属性之间交换数据。
CDHtmlDialog::DDX_DHtml_Radio 在成员变量与 HTML 页上的单选按钮之间交换数据。
CDHtmlDialog::DDX_DHtml_SelectIndex 获取或设置 HTML 页上列表框的索引。
CDHtmlDialog::DDX_DHtml_SelectString 获取或设置 HTML 页上列表框项(基于当前索引)的显示文本。
CDHtmlDialog::DDX_DHtml_SelectValue 获取或设置 HTML 页上列表框项(基于当前索引)的值。
CDHtmlDialog::DestroyModeless 销毁无模式对话框。
CDHtmlDialog::EnableModeless 启用无模式对话框。
CDHtmlDialog::FilterDataObject 允许对话框筛选由托管浏览器创建的剪贴板数据对象。
CDHtmlDialog::GetControlDispatch 检索在 HTML 文档中嵌入的 ActiveX 控件上的 IDispatch 接口。
CDHtmlDialog::GetControlProperty 检索指定的 ActiveX 控件所请求的属性。
CDHtmlDialog::GetCurrentUrl 检索与当前文档关联的统一资源定位器 (URL)。
CDHtmlDialog::GetDHtmlDocument 检索当前加载的 HTML 文档中的 IHTMLDocument2 接口。
CDHtmlDialog::GetDropTarget 由包含的 WebBrowser 控件在用作放置目标以允许对话框提供替代 IDropTarget 时调用。
CDHtmlDialog::GetElement 获取 HTML 元素上的接口。
CDHtmlDialog::GetElementHtml 检索 HTML 元素的 innerHTML 属性。
CDHtmlDialog::GetElementInterface 从 HTML 元素检索请求的接口指针。
CDHtmlDialog::GetElementProperty 检索 HTML 元素的属性的值。
CDHtmlDialog::GetElementText 检索 HTML 元素的 innerText 属性。
CDHtmlDialog::GetEvent 获取指向当前事件对象的 IHTMLEventObj 指针。
CDHtmlDialog::GetExternal 获取主机的 IDispatch 接口。
CDHtmlDialog::GetHostInfo 检索主机的 UI 功能。
CDHtmlDialog::GetOptionKeyPath 检索在其下存储用户首选项的注册表项。
CDHtmlDialog::HideUI 隐藏主机的 UI。
CDHtmlDialog::IsExternalDispatchSafe 指示主机的 IDispatch 接口是否可用于安全进行脚本编写。
CDHtmlDialog::LoadFromResource 将指定的资源加载到 WebBrowser 控件中。
CDHtmlDialog::Navigate 导航到指定 URL。
CDHtmlDialog::OnBeforeNavigate 在触发导航事件之前由框架调用。
CDHtmlDialog::OnDocumentComplete 由框架调用以在文档达到 READYSTATE_COMPLETE 状态时通知应用程序。
CDHtmlDialog::OnDocWindowActivate 当激活或停用文档窗口时,由框架调用。
CDHtmlDialog::OnFrameWindowActivate 当激活或停用框架窗口时,由框架调用。
CDHtmlDialog::OnInitDialog 调用以响应 WM_INITDIALOG 消息。
CDHtmlDialog::OnNavigateComplete 导航事件完成后由框架调用。
CDHtmlDialog::ResizeBorder 提醒对象需要重设其边框空间的大小。
CDHtmlDialog::SetControlProperty 将 ActiveX 控件的属性设置为新值。
CDHtmlDialog::SetElementHtml 设置 HTML 元素的 innerHTML 属性。
CDHtmlDialog::SetElementProperty 设置 HTML 元素的属性。
CDHtmlDialog::SetElementText 设置 HTML 元素的 innerText 属性。
CDHtmlDialog::SetExternalDispatch 设置主机的 IDispatch 接口。
CDHtmlDialog::SetHostFlags 设置主机的 UI 标志。
CDHtmlDialog::ShowContextMenu 即将显示上下文菜单时调用。
CDHtmlDialog::ShowUI 显示主机的 UI。
CDHtmlDialog::TranslateAccelerator 调用以处理菜单快捷键消息。
CDHtmlDialog::TranslateUrl 调用以修改要加载的 URL。
CDHtmlDialog::UpdateUI 调用以通知主机命令状态已更改。

公共数据成员

“属性” 描述
CDHtmlDialog::m_bUseHtmlTitle 指示是否使用 HTML 文档的标题作为对话框标题。
CDHtmlDialog::m_nHtmlResID 要显示的 HTML 资源的资源 ID。
CDHtmlDialog::m_pBrowserApp 指向 Web 浏览器应用程序的指针。
CDHtmlDialog::m_spHtmlDoc 指向 HTML 文档的指针。
CDHtmlDialog::m_strCurrentUrl 当前 URL。
CDHtmlDialog::m_szHtmlResID HTML 资源 ID 的字符串版本。

备注

CDHtmlDialog 可从 HTML 资源或 URL 加载要显示的 HTML。

CDHtmlDialog 还可以与 HTML 控件进行数据交换并处理来自 HTML 控件的事件,例如按钮单击。

继承层次结构

CObject

CDHtmlSinkHandlerBase2

CDHtmlSinkHandlerBase1

CCmdTarget

CDHtmlSinkHandler

CWnd

CDHtmlEventSink

CDialog

CDHtmlDialog

要求

标头afxdhtml.h

DDX_DHtml 帮助程序宏

通过 DDX_DHtml 帮助程序宏,可轻松访问 HTML 页面上控件的常用属性。

数据交换宏

名称 描述
DDX_DHtml_ElementValue 设置或检索所选控件中的 Value 属性。
DDX_DHtml_ElementInnerText 设置或检索当前元素的起始标记和结束标记之间的文本。
DDX_DHtml_ElementInnerHtml 设置或检索当前元素的起始标记和结束标记之间的 HTML。
DDX_DHtml_Anchor_Href 设置或检索目标 URL 或定位点。
DDX_DHtml_Anchor_Target 设置或检索目标窗口或框架。
DDX_DHtml_Img_Src 设置或检索文档中的图像或视频剪辑的名称。
DDX_DHtml_Frame_Src 设置或检索关联框架的 URL。
DDX_DHtml_IFrame_Src 设置或检索关联框架的 URL。

CDHtmlDialog::CanAccessExternal

可重写,作为访问检查调用,来查看已加载页面上的脚本对象是否可访问控件站点的外部调度。 检查确保调度对脚本编写来说是安全的,或者当前区域允许包含对脚本编写来说不安全的对象。

virtual BOOL CanAccessExternal();

返回值

如果成功,则不为 0;否则为 0。

CDHtmlDialog::CDHtmlDialog

构造基于资源的动态 HTML 对话框。

CDHtmlDialog();

CDHtmlDialog(
    LPCTSTR lpszTemplateName,
    LPCTSTR szHtmlResID,
    CWnd *pParentWnd = NULL);

CDHtmlDialog(
    UINT nIDTemplate,
    UINT nHtmlResID = 0,
    CWnd *pParentWnd = NULL);

参数

lpszTemplateName
以 null 结尾的字符串,它是对话框模板资源的名称。

szHtmlResID
以 null 结尾的字符串,它是 HTML 资源的名称。

pParentWnd
指向对话框对象所属的父窗口对象或所有者窗口对象(类型为 CWnd)的指针。 如果为 NULL,则对话框对象的父窗口设置为主应用程序窗口。

nIDTemplate
包含对话框模板资源的 ID 号码。

nHtmlResID
包含 HTML 资源的 ID 编号。

注解

构造函数的第二种形式是通过模板名称来访问对话框资源。 构造函数的第三种形式通过资源模板的 ID 来访问对话框资源。 通常,ID 以 IDD_ 前缀开头。

CDHtmlDialog::~CDHtmlDialog

销毁 CDHtmlDialog 对象。

virtual ~CDHtmlDialog();

备注

必须使用 CWnd::DestroyWindow 成员函数来销毁由 CDialog::Create 创建的无模式对话框。

CDHtmlDialog::CreateControlSite

可重写,用于创建控件站点实例以托管对话框上的 WebBrowse 控件。

virtual BOOL CreateControlSite(
    COleControlContainer* pContainer,
    COleControlSite** ppSite,
    UINT /* nID */,
    REFCLSID /* clsid */);

参数

pContainer
指向 COleControlContainer 对象的指针。

ppSite
指向 COleControlSite 的指针的指针。

返回值

如果成功,则不为 0;否则为 0。

注解

可替代此成员函数以返回自己的控件站点类的实例。

CDHtmlDialog::DDX_DHtml_AxControl

在成员变量与 HTML 页上的 ActiveX 控件的属性值之间交换数据。

void DDX_DHtml_AxControl(
    CDataExchange* pDX,
    LPCTSTR szId,
    DISPID dispId,
    VARIANT& var);

void DDX_DHtml_AxControl(
    CDataExchange* pDX,
    LPCTSTR szId,
    LPCTSTR szPropName,
    VARIANT& var);

参数

pDX
一个指向 CDataExchange 对象的指针。

szId
ActiveX 控件的 HTML 源中对象标记的 ID 参数的值。

dispId
要交换数据的属性的调度 ID。

szPropName
属性的名称。

var
VARIANTCOleVariantCComVariant 类型的数据成员,它保存与 ActiveX 控件属性交换的值。

示例

// COleVariant m_varSliderValue;
DDX_DHtml_AxControl(pDX, _T("slider1"), 0x0b /* Value */, m_varSliderValue);

CDHtmlDialog::DDX_DHtml_CheckBox

在成员变量与 HTML 页上的复选框之间交换数据。

void DDX_DHtml_CheckBox(
    CDataExchange* pDX,
    LPCTSTR szId,
    int& value);

参数

pDX
一个指向 CDataExchange 对象的指针。

szId
为 HTML 控件的 ID 参数指定的值。

value
要交换的值。

示例

// int m_nItalic;
DDX_DHtml_CheckBox(pDX, L"italic", m_nItalic);

CDHtmlDialog::DDX_DHtml_ElementText

在成员变量与 HTML 页上的任何 HTML 元素属性之间交换数据。

void DDX_DHtml_ElementText(
    CDataExchange* pDX,
    LPCTSTR szId,
    DISPID dispId,
    CString& value);

void DDX_DHtml_ElementText(
    CDataExchange* pDX,
    LPCTSTR szId,
    DISPID dispId,
    short& value);

void DDX_DHtml_ElementText(
    CDataExchange* pDX,
    LPCTSTR szId,
    DISPID dispId,
    int& value);

void DDX_DHtml_ElementText(
    CDataExchange* pDX,
    LPCTSTR szId,
    DISPID dispId,
    long& value);

void DDX_DHtml_ElementText(
    CDataExchange* pDX,
    LPCTSTR szId,
    DISPID dispId,
    DWORD& value);

void DDX_DHtml_ElementText(
    CDataExchange* pDX,
    LPCTSTR szId,
    DISPID dispId,
    float& value);

void DDX_DHtml_ElementText(
    CDataExchange* pDX,
    LPCTSTR szId,
    DISPID dispId,
    double& value);

参数

pDX
一个指向 CDataExchange 对象的指针。

szId
为 HTML 控件的 ID 参数指定的值。

dispId
要与其交换数据的 HTML 元素的调度 ID。

value
要交换的值。

CDHtmlDialog::DDX_DHtml_Radio

在成员变量与 HTML 页上的单选按钮之间交换数据。

void DDX_DHtml_Radio(
    CDataExchange* pDX,
    LPCTSTR szId,
    long& value);

参数

pDX
一个指向 CDataExchange 对象的指针。

szId
为 HTML 控件的 ID 参数指定的值。

value
要交换的值。

CDHtmlDialog::DDX_DHtml_SelectIndex

获取或设置 HTML 页上列表框的索引。

void DDX_DHtml_SelectIndex(
    CDataExchange* pDX,
    LPCTSTR szId,
    long& value);

参数

pDX
一个指向 CDataExchange 对象的指针。

szId
为 HTML 控件的 id 参数指定的值。

value
要交换的值。

CDHtmlDialog::DDX_DHtml_SelectString

获取或设置 HTML 页上列表框项(基于当前索引)的显示文本。

void DDX_DHtml_SelectString(
    CDataExchange* pDX,
    LPCTSTR szId,
    CString& value);

参数

pDX
一个指向 CDataExchange 对象的指针。

szId
为 HTML 控件的 ID 参数指定的值。

value
要交换的值。

CDHtmlDialog::DDX_DHtml_SelectValue

获取或设置 HTML 页上列表框项(基于当前索引)的值。

void DDX_DHtml_SelectValue(
    CDataExchange* pDX,
    LPCTSTR szId,
    CString& value);

参数

pDX
一个指向 CDataExchange 对象的指针。

szId
为 HTML 控件的 ID 参数指定的值。

value
要交换的值。

示例

// CString m_strBlurDir;
DDX_DHtml_SelectValue(pDX, L"blurDir", m_strBlurDir);

CDHtmlDialog::DestroyModeless

CDHtmlDialog 对象中拆离无模式对话框并销毁对象。

void DestroyModeless();

CDHtmlDialog::EnableModeless

启用无模式对话框。

STDMETHOD(EnableModeless)(BOOL fEnable);

参数

fEnable
请参阅 Windows SDK 中 IDocHostUIHandler::EnableModeless 中的 fEnable

返回值

返回 E_NOTIMPL

备注

此成员函数是 IDocHostUIHandler::EnableModelessCDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::FilterDataObject

允许对话框筛选由托管浏览器创建的剪贴板数据对象。

STDMETHOD(FilterDataObject)(
    IDataObject* pDO,
    IDataObject** ppDORet);

参数

pDO
请参阅 Windows SDK 中 IDocHostUIHandler::FilterDataObject 中的 pDO

ppDORet
请参阅 Windows SDK 中 IDocHostUIHandler::FilterDataObject 中的 ppDORet

返回值

返回 S_FALSE

备注

此成员函数是 IDocHostUIHandler::FilterDataObjectCDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::GetControlDispatch

检索 GetDHtmlDocument 返回的 HTML 文档中嵌入的 ActiveX 控件上的 IDispatch 接口。

HRESULT GetControlDispatch(
    LPCTSTR szId,
    IDispatch** ppdisp);

参数

szId
ActiveX 控件的 HTML ID。

ppdisp
控件的 IDispatch 接口(如果在网页中发现)。

返回值

标准 HRESULT 值。

CDHtmlDialog::GetControlProperty

检索指定的 ActiveX 控件所请求的属性。

VARIANT GetControlProperty(
    LPCTSTR szId,
    LPCTSTR szPropName);

VARIANT GetControlProperty(
    LPCTSTR szId,
    DISPID dispId);

VARIANT GetControlProperty(
    IDispatch* pdispControl,
    DISPID dispId);

参数

szId
ActiveX 控件的 HTML ID。

szPropName
当前用户的默认区域设置中属性的名称。

pdispControl
指向 ActiveX 控件的 IDispatch 指针。

dispId
属性的调度 ID。

返回值

包含请求的属性的变量;如果找不到控件或属性,则为空变量。

备注

重载按顶部(效率最低)到底部(效率最高)的顺序列出。

CDHtmlDialog::GetCurrentUrl

检索与当前文档关联的统一资源定位器 (URL)。

void GetCurrentUrl(CString& szUrl);

参数

szUrl
包含要检索的 URL 的 CString 对象。

CDHtmlDialog::GetDHtmlDocument

检索当前加载的 HTML 文档中的 IHTMLDocument2 接口。

HRESULT GetDHtmlDocument(IHTMLDocument2 **pphtmlDoc);

参数

**pphtmlDoc:指向 HTML 文档的指针的指针。

返回值

一个标准 HRESULT。 如果成功,则返回 S_OK

CDHtmlDialog::GetDropTarget

由包含的 WebBrowser 控件在用作放置目标以允许对话框提供替代 IDropTarget 时调用。

STDMETHOD(GetDropTarget)(
    IDropTarget* pDropTarget,
    IDropTarget** ppDropTarget);

参数

pDropTarget
请参阅 Windows SDK 中 IDocHostUIHandler::GetDropTarget 中的 pDropTarget

ppDropTarget
请参阅 Windows SDK 中 IDocHostUIHandler::GetDropTarget 中的 ppDropTarget

返回值

返回 E_NOTIMPL

备注

此成员函数是 IDocHostUIHandler::GetDropTargetCDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::GetElement

返回由 szElementId 指定的 HTML 元素的接口。

HRESULT GetElement(
    LPCTSTR szElementId,
    IDispatch** ppdisp,
    BOOL* pbCollection = NULL);

HRESULT GetElement(
    LPCTSTR szElementId,
    IHTMLElement** pphtmlElement);

参数

szElementId
HTML 元素的 ID。

ppdisp
指向所请求元素或元素集合的 IDispatch 指针。

pbCollection
一个 BOOL,它指示 ppdisp 表示的对象是单个元素还是元素集合。

pphtmlElement
指向所请求的元素的 IHTMLElement 指针。

返回值

标准 HRESULT 值。

注解

如果需要处理多个元素可能具有指定 ID 的情况,请使用第一个重载。 可使用最后一个参数来确定返回的接口指针是指向集合还是单个项。 如果接口指针位于集合上,可查询 IHTMLElementCollection 并使用其 item 属性按序号位置引用元素。

如果页面中有多个元素具有同一 ID,则第二个重载将失败。

CDHtmlDialog::GetElementHtml

检索由 szElementId 标识的 HTML 元素的 innerHTML 属性。

BSTR GetElementHtml(LPCTSTR szElementId);

参数

szElementId
HTML 元素的 ID。

返回值

szElementId 标识的 HTML 元素的 innerHTML 属性;如果找不到该元素,则为 NULL

CDHtmlDialog::GetElementInterface

szElementId 标识的 HTML 元素中检索请求的接口指针。

template <class Q> HRESULT GetElementInterface(
    LPCTSTR szElementId,
    Q** ppvObj);

HRESULT GetElementInterface(
    LPCTSTR szElementId,
    REFIID refiid,
    void** ppvObj);

参数

szElementId
HTML 元素的 ID。

ppvObj
一个指针的地址,如果找到元素且查询成功,则该指针用请求的接口指针填充。

refiid
请求的接口的接口 ID (IID)。

返回值

标准 HRESULT 值。

示例

CComPtr<IHTMLInputButtonElement> spBtn1;
CComPtr<IHTMLInputButtonElement> spBtn2;
HRESULT hr = S_OK;

// Use the template overload
hr = GetElementInterface(L"Button1", &spBtn1);

// Use the nontemplate overload
hr = GetElementInterface(L"Button1", IID_IHTMLInputButtonElement,
                         reinterpret_cast<void **>(&spBtn2));

CDHtmlDialog::GetElementProperty

从由 szElementId 标识的 HTML 元素中检索由 dispId 标识的属性的值。

VARIANT GetElementProperty(
    LPCTSTR szElementId,
    DISPID dispId);

参数

szElementId
HTML 元素的 ID。

dispId
属性的调度 ID。

返回值

属性的值;如果找不到该属性或元素,则为空变量。

CDHtmlDialog::GetElementText

检索由 szElementId 标识的 HTML 元素的 innerText 属性。

BSTR GetElementText(LPCTSTR szElementId);

参数

szElementId
HTML 元素的 ID。

返回值

szElementId 标识的 HTML 元素的 innerText 属性;如果找不到该属性或元素,则为 NULL

CDHtmlDialog::GetEvent

返回指向当前事件对象的 IHTMLEventObj 指针。

HRESULT GetEvent(IHTMLEventObj** ppEventObj);

参数

ppEventObj
将用 IHTMLEventObj 接口指针填充的指针的地址。

返回值

标准 HRESULT 值。

备注

只能在 DHTML 事件处理程序中调用此函数。

CDHtmlDialog::GetExternal

获取主机的 IDispatch 接口。

STDMETHOD(GetExternal)(IDispatch** ppDispatch);

参数

ppDispatch
请参阅 Windows SDK 中 IDocHostUIHandler::GetExternal 中的 ppDispatch

返回值

成功时返回 S_OK,失败时返回 E_NOTIMPL

备注

此成员函数是 IDocHostUIHandler::GetExternalCDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::GetHostInfo

检索主机的 UI 功能。

STDMETHOD(GetHostInfo)(DOCHOSTUIINFO* pInfo);

参数

pInfo
请参阅 Windows SDK 中 IDocHostUIHandler::GetHostInfo 中的 pInfo

返回值

返回 S_OK

备注

此成员函数是 IDocHostUIHandler::GetHostInfoCDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::GetOptionKeyPath

检索在其下存储用户首选项的注册表项。

STDMETHOD(GetOptionKeyPath)(
    LPOLESTR* pchKey,
    DWORD dw);

参数

pchKey
请参阅 Windows SDK 中 IDocHostUIHandler::GetOptionKeyPath 中的 pchKey

dw
请参阅 Windows SDK 中 IDocHostUIHandler::GetOptionKeyPath 中的 dw

返回值

返回 E_NOTIMPL

备注

此成员函数是 IDocHostUIHandler::GetOptionKeyPathCDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::HideUI

隐藏主机的 UI。

STDMETHOD(HideUI)(void);

返回值

返回 E_NOTIMPL

备注

此成员函数是 IDocHostUIHandler::HideUICDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::IsExternalDispatchSafe

指示主机的 IDispatch 接口是否可用于安全进行脚本编写。

virtual BOOL IsExternalDispatchSafe();

返回值

返回 FALSE

CDHtmlDialog::LoadFromResource

将指定的资源加载到 DHTML 对话框中的 WebBrowser 控件中。

BOOL LoadFromResource(LPCTSTR lpszResource);
BOOL LoadFromResource(UINT nRes);

参数

lpszResource
指向包含要加载的资源名称的字符串的指针。

nRes
要加载的资源的 ID。

返回值

如果成功,则返回 TRUE;否则返回 FALSE

CDHtmlDialog::m_bUseHtmlTitle

指示是否使用 HTML 文档的标题作为对话框标题。

BOOL m_bUseHtmlTitle;

备注

如果 m_bUseHtmlTitleTRUE,则对话框标题将设置为 HTML 文档的标题;否则,将使用对话框资源中的标题。

CDHtmlDialog::m_nHtmlResID

要显示的 HTML 资源的资源 ID。

UINT m_nHtmlResID;

示例

CDHtmlDialog mydialog(IDD_MYDHTMLDLG);
mydialog.m_nHtmlResID = IDR_HTML_MYDHTMLDLG;
mydialog.DoModal();

CDHtmlDialog::m_pBrowserApp

指向 Web 浏览器应用程序的指针。

CComPtr <IWebBrowser2> m_pBrowserApp;

CDHtmlDialog::m_spHtmlDoc

指向 HTML 文档的指针。

CComPtr<IHTMLDocument2> m_spHtmlDoc;

CDHtmlDialog::m_strCurrentUrl

当前 URL。

CString m_strCurrentUrl;

CDHtmlDialog::m_szHtmlResID

HTML 资源 ID 的字符串版本。

LPTSTR m_szHtmlResID;

示例

CDHtmlDialog mydialog(IDD_MYDHTMLDLG);
TCHAR szResID[] = _T("HTML_PAGE");
mydialog.m_szHtmlResID = szResID;
mydialog.DoModal();

导航到由 lpszURL 指定的 URL 标识的资源。

void Navigate(
    LPCTSTR lpszURL,
    DWORD dwFlags = 0,
    LPCTSTR lpszTargetFrameName = NULL,
    LPCTSTR lpszHeaders = NULL,
    LPVOID lpvPostData = NULL,
    DWORD dwPostDataLen = 0);

参数

lpszURL
指向字符串的指针,该字符串包含要定向到的 URL。

dwFlags
变量的标志,该变量指定是否将资源添加到历史记录列表、是否读取到缓存或从缓存中写入,以及是否在新窗口中显示资源。 该变量可以是 BrowserNavConstants 枚举定义的值的组合。

lpszTargetFrameName
指向字符串的指针,该字符串包含要在其中显示资源的框架的名称。

lpszHeaders
指向值的指针,该值指定要发送到服务器的 HTTP 标头。 这些标头将添加到默认的 Internet Explorer 标头。 标头可指定服务器所需的操作、要传递给服务器的数据类型或状态代码等信息。 如果 URL 不是 HTTP URL,则忽略此参数。

lpvPostData
指向要通过 HTTP POST 事务发送的数据的指针。 例如,POST 事务用于发送 HTML 表单收集的数据。 如果此参数未指定任何后期数据,则 Navigate 发出 HTTP GET 事务。 如果 URL 不是 HTTP URL,则忽略此参数。

dwPostDataLen
使用 HTTP POST 事务发送的数据。 例如,POST 事务用于发送 HTML 表单收集的数据。 如果此参数未指定任何后期数据,则 Navigate 发出 HTTP GET 事务。 如果 URL 不是 HTTP URL,则忽略此参数。

CDHtmlDialog::OnBeforeNavigate

由框架调用以在导航发生之前触发事件。

virtual void OnBeforeNavigate(
    LPDISPATCH pDisp,
    LPCTSTR szUrl);

参数

pDisp
指向 IDispatch 对象的指针。

szUrl
指向包含要导航到的 URL 的字符串的指针。

CDHtmlDialog::OnDocumentComplete

由框架调用以在文档达到 READYSTATE_COMPLETE 状态时通知应用程序。

virtual void OnDocumentComplete(
    LPDISPATCH pDisp,
    LPCTSTR szUrl);

参数

pDisp
指向 IDispatch 对象的指针。

szUrl
指向字符串的指针,该字符串包含已导航到的 URL。

CDHtmlDialog::OnDocWindowActivate

当激活或停用文档窗口时,由框架调用。

STDMETHOD(OnDocWindowActivate)(BOOL fActivate);

参数

fActivate
请参阅 Windows SDK 中 IDocHostUIHandler::OnDocWindowActivate 中的 fActivate

返回值

返回 E_NOTIMPL

备注

此成员函数是 IDocHostUIHandler::OnDocWindowActivateCDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::OnFrameWindowActivate

当激活或停用框架窗口时,由框架调用。

STDMETHOD(OnFrameWindowActivate)(BOOL fActivate);

参数

fActivate
请参阅 Windows SDK 中 IDocHostUIHandler::OnFrameWindowActivate 中的 fActivate

返回值

返回 E_NOTIMPL

备注

此成员函数是 IDocHostUIHandler::OnFrameWindowActivateCDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::OnInitDialog

调用以响应 WM_INITDIALOG 消息。

virtual BOOL OnInitDialog();

返回值

默认实现返回 TRUE

备注

此消息在 CreateCreateIndirectDoModal 调用期间发送到对话框,且恰好在显示对话框之前发送。

如果需要在初始化对话框时进行特殊处理,请替代此成员函数。 在替代后的版本中,首先调用基类 OnInitDialog,但忽略其返回值。 通常会从替代后的成员函数中返回 TRUE

Windows 通过所有 Microsoft 基础类库对话框通用的标准全局对话框过程(而非通过消息映射)调用 OnInitDialog 函数,因此不需要用到此成员函数的消息映射项。

CDHtmlDialog::OnNavigateComplete

导航到指定的 URL 后由框架调用。

virtual void OnNavigateComplete(
    LPDISPATCH pDisp,
    LPCTSTR szUrl);

参数

pDisp
指向 IDispatch 对象的指针。

szUrl
指向字符串的指针,该字符串包含已导航到的 URL。

CDHtmlDialog::ResizeBorder

提醒对象需要重设其边框空间的大小。

STDMETHOD(ResizeBorder)(
    LPCRECT prcBorder,
    IOleInPlaceUIWindow* pUIWindow,
    BOOL fRameWindow);

参数

prcBorder
请参阅 Windows SDK 中 IDocHostUIHandler::ResizeBorder 中的 prcBorder

pUIWindow
请参阅 Windows SDK 中 IDocHostUIHandler::ResizeBorder 中的 pUIWindow

fFrameWindow
请参阅 Windows SDK 中 IDocHostUIHandler::ResizeBorder 中的 fFrameWindow

返回值

返回 E_NOTIMPL。

CDHtmlDialog::SetControlProperty

将 ActiveX 控件的属性设置为新值。

void SetControlProperty(
    LPCTSTR szElementId,
    DISPID dispId,
    VARIANT* pVar);

void SetControlProperty(
    IDispatch* pdispControl,
    DISPID dispId,
    VARIANT* pVar);

void SetControlProperty(
    LPCTSTR szElementId,
    LPCTSTR szPropName,
    VARIANT* pVar);

参数

szElementId
ActiveX 控件的 HTML ID。

dispId
要设置的属性的调度 ID。

pVar
指向包含新属性值的 VARIANT 的指针。

pdispControl
指向 ActiveX 控件的 IDispatch 接口的指针。

szPropName
包含要设置的属性名称的字符串。

CDHtmlDialog::SetElementHtml

设置 HTML 元素的 innerHTML 属性。

void SetElementHtml(
    LPCTSTR szElementId,
    BSTR bstrText);

void SetElementHtml(
    IUnknown* punkElem,
    BSTR bstrText);

参数

szElementId
HTML 元素的 ID。

bstrText
innerHTML 属性的新值。

punkElem
HTML 元素的 IUnknown 指针。

CDHtmlDialog::SetElementProperty

设置 HTML 元素的属性。

void SetElementProperty(
    LPCTSTR szElementId,
    DISPID dispId,
    VARIANT* pVar);

参数

szElementId
HTML 元素的 ID。

dispId
要设置的属性的调度 ID。

pVar
属性的新值。

CDHtmlDialog::SetElementText

设置 HTML 元素的 innerText 属性。

void SetElementText(
    LPCTSTR szElementId,
    BSTR bstrText);

void SetElementText(
    IUnknown* punkElem,
    BSTR bstrText);

参数

szElementId
HTML 元素的 ID。

bstrText
innerText 属性的新值。

punkElem
HTML 元素的 IUnknown 指针。

CDHtmlDialog::SetExternalDispatch

设置主机的 IDispatch 接口。

void SetExternalDispatch(IDispatch* pdispExternal);

参数

pdispExternal
新的 IDispatch 接口。

CDHtmlDialog::SetHostFlags

设置主机 UI 标志。

void SetHostFlags(DWORD dwFlags);

参数

dwFlags
有关可能的值,请参阅 Windows SDK 中的 DOCHOSTUIFLAG

CDHtmlDialog::ShowContextMenu

即将显示上下文菜单时调用。

STDMETHOD(ShowContextMenu)(
    DWORD dwID,
    POINT* ppt,
    IUnknown* pcmdtReserved,
    IDispatch* pdispReserved);

参数

dwID
请参阅 Windows SDK 中 IDocHostUIHandler::ShowContextMenu 中的 dwID

ppt
请参阅 Windows SDK 中 IDocHostUIHandler::ShowContextMenu 中的 ppt

pcmdtReserved
请参阅 Windows SDK 中 IDocHostUIHandler::ShowContextMenu 中的 pcmdtReserved

pdispReserved
请参阅 Windows SDK 中 IDocHostUIHandler::ShowContextMenu 中的 pdispReserved

返回值

返回 S_FALSE

备注

此成员函数是 IDocHostUIHandler::ShowContextMenuCDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::ShowUI

显示主机的 UI。

STDMETHOD(ShowUI)(
    DWORD dwID,
    IOleInPlaceActiveObject* pActiveObject,
    IOleCommandTarget* pCommandTarget,
    IOleInPlaceFrame* pFrame,
    IOleInPlaceUIWindow* pDoc);

参数

dwID
请参阅 Windows SDK 中 IDocHostUIHandler::ShowUI 中的 dwID

pActiveObject
请参阅 Windows SDK 中 IDocHostUIHandler::ShowUI 中的 pActiveObject

pCommandTarget
请参阅 Windows SDK 中 IDocHostUIHandler::ShowUI 中的 pCommandTarget

pFrame
请参阅 Windows SDK 中 IDocHostUIHandler::ShowUI 中的 pFrame

pDoc
请参阅 Windows SDK 中 IDocHostUIHandler::ShowUI 中的 pDoc

返回值

返回 S_FALSE

备注

此成员函数是 IDocHostUIHandler::ShowUICDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::TranslateAccelerator

调用以处理菜单快捷键消息。

STDMETHOD(TranslateAccelerator)(
    LPMSG lpMsg,
    const GUID* pguidCmdGroup,
    DWORD nCmdID);

参数

lpMsg
请参阅 Windows SDK 中 IDocHostUIHandler::TranslateAccelerator 中的 lpMsg

pguidCmdGroup
请参阅 Windows SDK 中 IDocHostUIHandler::TranslateAccelerator 中的 pguidCmdGroup

nCmdID
请参阅 Windows SDK 中 IDocHostUIHandler::TranslateAccelerator 中的 nCmdID

返回值

返回 S_FALSE

备注

此成员函数是 IDocHostUIHandler::TranslateAcceleratorCDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::TranslateUrl

调用以修改要加载的 URL。

STDMETHOD(TranslateUrl)(
    DWORD dwTranslate,
    OLECHAR* pchURLIn,
    OLECHAR** ppchURLOut);

参数

dwTranslate
请参阅 Windows SDK 中 IDocHostUIHandler::TranslateUrl 中的 dwTranslate

pchURLIn
请参阅 Windows SDK 中 IDocHostUIHandler::TranslateUrl 中的 pchURLIn

ppchURLOut
请参阅 Windows SDK 中 IDocHostUIHandler::TranslateUrl 中的 ppchURLOut

返回值

返回 S_FALSE

备注

此成员函数是 IDocHostUIHandler::TranslateUrlCDHtmlDialog 实现,如 Windows SDK 中所述。

CDHtmlDialog::UpdateUI

调用以通知主机命令状态已更改。

STDMETHOD(UpdateUI)(void);

返回值

返回 E_NOTIMPL

备注

此成员函数是 IDocHostUIHandler::UpdateUICDHtmlDialog 实现,如 Windows SDK 中所述。

另请参阅

MFC 示例 DHtmlExplore
DDX_DHtml 帮助程序宏
层次结构图