📄 能够阻拦访问的浏览器.txt
字号:
能够阻拦访问的浏览器
大家可能对IE内的分级审查不陌生吧。所谓分级审查就是对浏览的网站加以限制,
限制其他人的使用。其实这个功能我们可以加入到我们的程序当中。他是通过在
ChtmlView类中的
事件OnBeforeNavigate2()来实现的,这个事件可以在WEB浏览器中的导航发生
之前,引起事件。在产生这个事件以后,通过判断网站的地址来加以阻拦。下面
是这个我的一段代
码,我在视类中加入了一个CbyteArray类成员变量m_addlist,来记录网址,通
过对这个数组中元素的判断来停止浏览。
#include "stdafx.h"
#include "str.h"
#include "strDoc.h"
#include "strView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
IMPLEMENT_DYNCREATE(CStrView, CHtmlView)
BEGIN_MESSAGE_MAP(CStrView, CHtmlView)
//{{AFX_MSG_MAP(CStrView)
ON_COMMAND(IDD_DDE, OnDde)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CHtmlView::OnFilePrint)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CStrView construction/destruction
CStrView::CStrView()
{
// TODO: add construction code here
} CStrView::~CStrView()
{
}
BOOL CStrView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CHtmlView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CStrView drawing
void CStrView::OnDraw(CDC* pDC)
{
CStrDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
}
void CStrView::OnInitialUpdate()
{
CHtmlView::OnInitialUpdate();
// TODO: This code navigates to a popular spot on the web.
// change the code to go where you'd like.
Navigate2(_T("http://263.NET"),NULL,NULL);
}
/////////////////////////////////////////////////////////////////////////////
// CStrView printing
/////////////////////////////////////////////////////////////////////////////
// CStrView diagnostics
#ifdef _DEBUG
void CStrView::AssertValid() const
{
CHtmlView::AssertValid();
}
void CStrView::Dump(CDumpContext& dc) const
{
CHtmlView::Dump(dc);
}
CStrDoc* CStrView::GetDocument()
// non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CStrDoc)));
return (CStrDoc*)m_pDocument;
}
#endif//_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CStrView message handlers
void CStrView::OnDde()
{
CString ddd;
ddd="http://263.net";
m_addlist.Add( ddd);
//加入一个地址
}
void CStrView::OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel)
{
for(int i=0;i<=m_addlist.GetSize();i++)
{
CString temp;
temp=m_addlist.GetAt(i);
if(!strnicmp(lpszURL,temp,temp.GetLength()))
//判断现在浏览的网页与数组中的是否相同,如果相同将停止浏览该网页并且
弹出一个对话框
{
*pbCancel=TRUE;
AfxMessageBox("这个网页已经被禁止浏览啦!^_^");
Stop(); break;
}
}
CHtmlView::OnBeforeNavigate2(lpszURL, nFlags, lpszTargetFrameName, baPostedData, lpszHeaders, pbCancel);
}
还可以在其中加入其他的事件,来达到你预期的效果。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -