3,055
社区成员
发帖
与我相关
我的任务
分享
class CDlgWebPrint : public CDialog
{
// Construction
public:
//…………
CDlgWebPrint(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CDlgWebPrint)
enum { IDD = IDD_DIALOG_WEBPRINT };
CWebBrowser2 m_pWebPrint;
//}}AFX_DATA
}
BOOL CDlgWebPrint::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
this->m_pWebPrint.Navigate(_T("E:/temp.htm");, NULL, NULL, NULL, NULL);//打开strURL文件
this->m_pWebPrint.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
//打印
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CDlgWebPrint::OnPrint()
{
LONG n = 0;
while (TRUE)
{
if (this->m_pWebPrint.GetReadyState() == READYSTATE_COMPLETE )
//READYSTATE_COMPLETE = 4,表示网页加载完成。但这里一直是READYSTATE_LOADING = 1,
//等了十几分钟还是1.我确定打开这个网页不需要1秒钟。还有什么玄机吗?吗吗吗?
{
this->m_pWebPrint.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
break;
}
else
{
if (n++ > 20)
{
AfxMessageBox(_T("加载网页失败"));
return FALSE;
}
Sleep(500);
}
}
this->ShowWindow(SW_HIDE);
return TRUE;
}
VARIANT_BOOL isBusy = VARIANT_TRUE;
while(isBusy==VARIANT_TRUE)
pWebBrowser2->get_Busy(&isBusy);