在MFC用html做界面,,怎样能用html的链接调用c++函数

在MFC用html做界面,,怎样能用html的链接调用c++函数,第1张

如果你是利用 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这一个分类下的文章和示例。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6273046.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存