【发布时间】:2014-04-24 19:43:16
【问题描述】:
这是链接到我之前的问题。
我已经设法为我的应用程序生成的报告的新型视图创建了一个从 CHtmlView 派生的新视图,但我在新视图中发现了一些问题
class CMyHtmlView : public CHtmlView
{
protected: // create from serialization only
CMyHtmlView();
DECLARE_DYNCREATE(CMyHtmlView)
// Attributes
public:
CReportDoc* GetDocument();
CString m_sFileName;
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMyHtmlView)
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void OnInitialUpdate(); // called first time after construct
virtual void OnFilePrintPreview();
virtual void OnFilePrint();
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CMyHtmlView();
//{{AFX_MSG(CMyHtmlView)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
void CMyHtmlView::OnFilePrintPreview()
{
// Before this I will call a Function Generate a HTML File in a Location and Updated in m_sFileName
Navigate2(m_sFileName);
ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_PROMPTUSER, NULL, NULL );
}
void CMyHtmlView::OnInitialUpdate()
{
CHtmlView::OnInitialUpdate();
Navigate2(_T("about:blank"));
}
void CMyHtmlView::OnFilePrint()
{
// Before this I will call a Function Generate a HTML File in a Location and Updated in m_sFileName
Navigate2(m_sFileName,NULL,NULL);
CHtmlView::OnFilePrint();
}
在此打印中OnFilePrint() 可以正常工作。但问题存在于OnFilePrintPreview()。
问题来了:
在Navigate() 之后调用ExecWB() 在应用程序中仅生成基于HTML 视图的窗口,不显示打印预览窗口
我做错了吗?
【问题讨论】:
-
不清楚你在问什么。你能澄清一下吗?
-
Navigate()是一个异步操作。在调用打印预览之前,您必须等待“导航完成”回调。
标签: internet-explorer visual-c++ mfc visual-c++-6 print-preview