MFC C++監聽網頁視窗的點選超連結跳轉問題(即開啟新的瀏覽器視窗)
阿新 • • 發佈:2019-01-09
使用MFC的CHtmlView類,註冊ON_EVENT事件進行監聽。
實現的基本程式碼是:
BEGIN_EVENTSINK_MAP(CxxxView, CHtmlView)
ON_EVENT(CxxxView, AFX_IDW_PANE_FIRST, DISPID_NEWWINDOW3, CxxxView::OnNewWindow3, VTS_PDISPATCH VTS_PBOOL VTS_UI4 VTS_BSTR VTS_BSTR)
END_EVENTSINK_MAP()
void CxxxView::OnNewWindow3( LPDISPATCH* ppDisp, BOOL* Cancel, DWORD dwFlags, LPCTSTR bstrUrlContext, LPCTSTR bstrUrl )
{
*Cancel = TRUE;//捕抓到新視窗的邏輯處理。
Navigate2(bstrUrl);//一般是會為這個uri加上單點登入的資訊。LtpToken,session之類。
}
如果還有不懂可以參考老kk的CJSInteractiveHtmlView介面類
還可以使用CHtmlView進行與js的互動。呼叫js函式或者提供函式給js進行呼叫。
提供函式給js呼叫的實現:http://www.cnblogs.com/anzhihun/archive/2013/01/04/2843970.html