VC6 和 MFC 中的 HTML 打印和打印预览

Posted

技术标签:

【中文标题】VC6 和 MFC 中的 HTML 打印和打印预览【英文标题】:HTML Print and Print Preview in VC6 and MFC 【发布时间】:2014-04-15 11:52:28 【问题描述】:

我有一个生成报告的应用程序,到目前为止,我正在通过基于 MFC 的格式和布局内容生成打印/打印预览。

作为一个整容者,我现在尝试将报告导出为格式正确的 html 文件,然后尝试显示相同的内容。但我在 MFC 中找不到执行此操作的控件或机制。

请帮助我使用 MFC 的 Doc/View Architecture 打印和显示 HTML 文件的打印预览。

提前非常感谢:)

【问题讨论】:

你看过CHtmlView吗?你试过什么? 是的,但它缺少打印预览的东西:( 在将您的报告加载到其中后,尝试将“打印预览”命令 ID 发送到嵌入式 CHtmlViewExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT, NULL, NULL); 【参考方案1】:

经过大量研究和试验,找到了实现这一点的方法。

为我的旧文档使用了一个名为 CMyHtmlView 的新视图,它继承自 CHtmlView。

class CReportWebView : public CHtmlView

protected: // create from serialization only
    CReportWebView();
    int     m_reportID;
    DECLARE_DYNCREATE(CReportWebView)

public:

    // Overrides
    // ClassWizard generated virtual function overrides
    //AFX_VIRTUAL(CReportWebView)
    protected:
    virtual void OnInitialUpdate(); // called first time after construct
    virtual void OnFilePrintPreview();
    virtual void OnFilePrint();
    virtual void OnNavigateComplete2(LPCTSTR strURL);
    //AFX_VIRTUAL

// Implementation
public:
    virtual ~CReportWebView();

    //AFX_MSG(CReportWebView)
        // NOTE - the ClassWizard will add and remove member functions here.
    //AFX_MSG
    DECLARE_MESSAGE_MAP()
;

更多详情可以在我的other question找到

【讨论】:

以上是关于VC6 和 MFC 中的 HTML 打印和打印预览的主要内容,如果未能解决你的问题,请参考以下文章

MDI 应用程序 MFC 中文档的多个视图

MFC VC++6.0 对话框怎么获得文档类中的数据

Chrome 和 Mozilla Firefox 中的不同打印预览

如何在 mfc 应用程序中支持从右到左打印

vc6.0如何使用getwindowtext函数获取edit控件中的文本内容

电脑怎么不能打印预览?