CDHtmlDialog 类是 MFC(Microsoft Foundation Classes)中用于创建基于 HTML 的对话框的类之一。在 CDHtmlDialog 类中,m_nHtmlResID 是一个公共数据成员,它用于存储 HTML 对话框资源的资源 ID。

通常,您可以通过将 HTML 对话框的资源 ID 分配给 m_nHtmlResID 来指定 CDHtmlDialog 将使用哪个 HTML 资源。这个资源 ID 对应于您在资源编辑器中定义的 HTML 文件的 ID。

以下是一个简单的示例,演示了如何在 CDHtmlDialog 类中使用 m_nHtmlResID:
// MyHtmlDialog.h
#pragma once

#include "afxhtml.h"

class CMyHtmlDialog : public CDHtmlDialog
{
public:
    enum { IDD = IDD_MYHTMLDIALOG, IDH = IDR_HTML_MYHTMLDIALOG };

    CMyHtmlDialog(CWnd* pParent = nullptr);

    // Dialog Data
    #ifdef AFX_DESIGN_TIME
        enum { IDD = IDD_MYHTMLDIALOG };
    #endif

    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

    // Implementation
protected:
    DECLARE_MESSAGE_MAP()
public:
    virtual BOOL OnInitDialog();
    DECLARE_DHTML_EVENT_MAP()
};

// MyHtmlDialog.cpp
#include "stdafx.h"
#include "MyHtmlDialog.h"

// CMyHtmlDialog 对话框

IMPLEMENT_DYNAMIC(CMyHtmlDialog, CDHtmlDialog)

CMyHtmlDialog::CMyHtmlDialog(CWnd* pParent /*=nullptr*/)
    : CDHtmlDialog(CMyHtmlDialog::IDD, CMyHtmlDialog::IDH, pParent)
{
}

void CMyHtmlDialog::DoDataExchange(CDataExchange* pDX)
{
    CDHtmlDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CMyHtmlDialog, CDHtmlDialog)
END_MESSAGE_MAP()

BEGIN_DHTML_EVENT_MAP(CMyHtmlDialog)
END_DHTML_EVENT_MAP()

BOOL CMyHtmlDialog::OnInitDialog()
{
    m_nHtmlResID = IDR_HTML_MYHTMLDIALOG;  // 设置 HTML 资源的 ID
    CDHtmlDialog::OnInitDialog();

    return TRUE;
}

在这个示例中,m_nHtmlResID 被设置为 IDR_HTML_MYHTMLDIALOG,它是在资源编辑器中定义的 HTML 文件的资源 ID。在 OnInitDialog 函数中,您可以看到这一设置。


转载请注明出处:http://www.zyzy.cn/article/detail/17312/MFC/CDHtmlDialog