以下是 CHtmlView::OnBeforeNavigate2 方法的签名:
virtual BOOL OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName,
CByteArray& baPostedData, LPCTSTR lpszHeaders,
BOOL* pbCancel);
在派生类中,您可以重写此方法以处理在导航开始之前的事件。当用户单击链接、通过脚本导航或通过编程方式调用 Navigate2 时,将调用此方法。
下面是一个简单的示例,演示如何在派生类中重写 OnBeforeNavigate2 方法:
class CMyHtmlView : public CHtmlView {
public:
virtual BOOL OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName,
CByteArray& baPostedData, LPCTSTR lpszHeaders,
BOOL* pbCancel) override {
// 在此处处理导航前的逻辑
// 返回 TRUE 表示取消导航,返回 FALSE 表示继续导航
return FALSE;
}
};
在上述示例中,CMyHtmlView 是从 CHtmlView 派生的一个类,它重写了 OnBeforeNavigate2 方法以处理导航前的逻辑。通过设置 *pbCancel 参数为 TRUE,可以取消导航,或者通过返回 FALSE 继续导航。
转载请注明出处:http://www.zyzy.cn/article/detail/18204/MFC/CHtmlView