如果你是利用 CHtmlView 的话,在 html 里利用javascript做页面跳转,然后htmlview的beforenavigate 事件里截获链接,然后处理即可,因为链接你可以自定义,所以页面的参数可以通过连接传进来。
这是一段类似的代码可以参考
void CIEView::OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray&baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel){
// TODO: Add your specialized code here and/or call the base class
CMainFrame* pfrm=(CMainFrame*)AfxGetMainWnd()
CString strURL,strURL2
strURL=lpszURL
strURL.MakeLower()
if(strURL.Left(4)!="http" &&strURL.Left(3)!="ftp")
{
if(strURL.Left(8)=="email://")
{
*pbCancel=TRUE
ProcessEmail(strURL)
return
}
if(strURL.Left(9)=="search://")
{
*pbCancel=TRUE
ProcessSearch(strURL)
return
}
strURL=pfrm->GetRealURL(strURL)
pfrm->AddToHistory(strURL)
}
CHtmlView::OnBeforeNavigate2(lpszURL, nFlags,lpszTargetFrameName, baPostedData, lpszHeaders, pbCancel)
}
目前有两个对话框类,一个CTestDlg,一个CDlg1,CTestDlg中存在和编辑框控件关联的CString对象m_str1,和一个按钮BUTTON1,CDlg1中存在编辑框和与之关联的CString对象m_str2,当点击button的时候,产生对话框CDlg1,并初始化编辑框空间。写button的click时间代码那个选项是生成一个基于CDHTMLDialog的对话框应用程序。CDHTMLDialog是对IE的Trident引擎的封装。一般web开发者看见HTML对话框第一个想到的是HTML里面的脚本调用showModalDialog函数创建的对话框。
至于如何自动化Trident引擎,一个帖子说不完,去翻IE的SDK里面Hosting
and
Reuse这一个分类下的文章和示例。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)