enbrowserctrl.cpp
来自「管理项目进度工具的原代码」· C++ 代码 · 共 114 行
CPP
114 行
// enbrowserctrl.cpp : implementation file
//
#include "stdafx.h"
#include "enbrowserctrl.h"
//fabio_2005
#if _MSC_VER >= 1300
# include <comdef.h>
#else
# include <comutil.h>
#endif
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
enum { EBC_NONE, EBC_PRINT, EBC_PRINTPREVIEW };
/////////////////////////////////////////////////////////////////////////////
// CEnBrowserCtrl
CEnBrowserCtrl::CEnBrowserCtrl() : m_nAction(EBC_NONE)
{
}
CEnBrowserCtrl::~CEnBrowserCtrl()
{
}
BEGIN_MESSAGE_MAP(CEnBrowserCtrl, CWebBrowserCtrl)
//{{AFX_MSG_MAP(CEnBrowserCtrl)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BEGIN_EVENTSINK_MAP(CEnBrowserCtrl, CWebBrowserCtrl)
//{{AFX_EVENTSINK_MAP(CBrowserDlg)
//}}AFX_EVENTSINK_MAP
// ON_EVENT_REFLECT(CWebBrowser, 250 /* BeforeNavigate2 */, OnBeforeNavigate2, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
ON_EVENT_REFLECT(CEnBrowserCtrl, 252 /* NavigateComplete2 */, OnNavigateComplete2, VTS_DISPATCH VTS_PVARIANT)
END_EVENTSINK_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEnBrowserCtrl message handlers
void CEnBrowserCtrl::Print(LPCTSTR szFile)
{
if (!szFile || !*szFile)
ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, NULL, NULL);
// ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
else
{
COleVariant vFlags(0L), vFrame(""), vData(""), vHeaders("");
// navigate to print file
m_nAction = EBC_PRINT;
Navigate(szFile, vFlags, vFrame, vData, vHeaders);
}
}
void CEnBrowserCtrl::PrintPreview(LPCTSTR szFile)
{
if (!szFile || !*szFile)
ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT, NULL, NULL);
// ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
else
{
COleVariant vFlags(0L), vFrame(""), vData(""), vHeaders("");
// navigate to print file
m_nAction = EBC_PRINTPREVIEW;
Navigate(szFile, vFlags, vFrame, vData, vHeaders);
}
}
void CEnBrowserCtrl::OnNavigateComplete2(LPDISPATCH /*pDisp*/, VARIANT FAR* URL)
{
CString sURL;
_bstr_t sTemp;
sTemp = *URL;
sURL = CString(LPCTSTR(sTemp));
switch (m_nAction)
{
case EBC_PRINT:
SafeExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, NULL, NULL);
// SafeExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
break;
case EBC_PRINTPREVIEW:
SafeExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT, NULL, NULL);
// SafeExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
break;
}
m_nAction = EBC_NONE;
}
BOOL CEnBrowserCtrl::SafeExecWB(long cmdID, long cmdexecopt, VARIANT* pvaIn, VARIANT* pvaOut)
{
try
{
ExecWB(cmdID, cmdexecopt, pvaIn, pvaOut);
}
catch (CException* /*e*/)
{
return FALSE;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?