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

就是在网页代码里面调用c++函数
2025-01-06 21:25:14
推荐回答(3个)
回答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);
}

回答2:

亲在网页里面调用C++函数是不行的哦(除非在后台处理才可能C#等代码).

回答3:

你可以看下CHtmlDialog类。新建MFC项目,HTML对话框程序。VS会生成一个项目。看下它是怎么实现的