当前位置: 首页 > news >正文

基于MFC的JavaScript进行网页数据交互

目录

前言

一、创建html对话框工程

二、使用步骤

1.引入JavaScript接口代码

2.重写相关接口

3.在html网页中添加C/C++调用的接口

4.在MFC工程中添加调用接口

5.设置确认按键触发调用

6.运行结果

总结


前言

如何快速的进行MFC开发,这里我介绍一种JavaScript与C/C++交互的方式。

一、创建html对话框工程

我这里是基于VS2010的开发环境搭建的,以下的操作均在VS2010中。

二、使用步骤

1.引入JavaScript接口代码

LPDISPATCH m_pDisp;         //判断网页加载
CCallScript pCallScript;    //脚本调用

2.重写相关接口

代码如下(示例):

void CMFCHtmlDlg::OnSize(UINT nType, int cx, int cy)
{CDHtmlDialog::OnSize(nType, cx, cy);// TODO:  在此处添加消息处理程序代码if (m_pBrowserApp != NULL){m_pBrowserApp->put_Top(0);m_pBrowserApp->put_Left(0);m_pBrowserApp->put_Height(cy);m_pBrowserApp->put_Width(cx/* - 50*/);}
}void CMFCHtmlDlg::OnNavigateComplete(LPDISPATCH pDisp, LPCTSTR szUrl)
{CDHtmlDialog::OnNavigateComplete(pDisp, szUrl);// TODO:  在此添加专用代码和/或调用基类if (!m_pDisp)m_pDisp = pDisp;
}void CMFCHtmlDlg::OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl)
{CDHtmlDialog::OnDocumentComplete(pDisp, szUrl);// TODO:  在此添加专用代码和/或调用基类if (m_pDisp && (m_pDisp == pDisp))//判断网页是否真正加载完毕{IHTMLDocument2* pDoc;HRESULT hr = GetDHtmlDocument(&pDoc);pCallScript.SetDocument(pDoc);pDoc->Release();m_pDisp = NULL;//Reset glpDisp}
}BOOL CMFCHtmlDlg::CanAccessExternal()
{return TRUE;
}

3.在html网页中添加C/C++调用的接口

4.在MFC工程中添加调用接口

BEGIN_DISPATCH_MAP(CMFCHtmlDlg, CDHtmlDialog)DISP_FUNCTION(CMFCHtmlDlg, "HtmlShowJson", CallCplusplus, VT_EMPTY, VTS_UI2)
END_DISPATCH_MAP()
HRESULT CMFCHtmlDlg::CallCplusplus() {CSimpleArray<CComBSTR>  paramArray;CString msg;CComVariant r;msg.Format("hello,from C/C++");paramArray.Add(msg.GetBuffer());pCallScript.Run("HtmlShowJson", paramArray, &r);if (r.vt == VT_BSTR){CString strValue;r.ChangeType(VT_BSTR);_variant_t var_t;_bstr_t bstr_t;var_t = r;bstr_t = var_t;strValue.Format("%s", (const char*)bstr_t);if (AfxMessageBox(strValue, MB_YESNO) == IDYES) {}}else {CString strMsg = "HtmlShowJson Error!";if (AfxMessageBox(strMsg, MB_YESNO) == IDYES) {}};return S_OK;
}

5.设置确认按键触发调用

HRESULT CMFCHtmlDlg::OnButtonOK(IHTMLElement* /*pElement*/)
{CallCplusplus();return S_OK;
}

6.运行结果


总结


以上就是今天要讲的内容,本文仅仅简单介绍了在MFC中基于JavaScript的使用,而html提供了大量能使我们快速便捷地处理界面的优美布局。

http://www.lryc.cn/news/39893.html

相关文章:

  • AUTOSAR-Fee
  • Linux基本命令——操作演示
  • 【Linux】目录和文件的权限
  • Unity 优化之Player Setting
  • Qt——通过一个简单的程序例程熟悉使用Qt Creator软件进行项目搭建的基本流程(新建项目、项目的文件组成、修改ui文件、编译运行与调试)
  • Linux 如何使用 git | 新建仓库 | git 三板斧
  • 3.springcloud微服务架构搭建 之 《springboot自动装配ribbon》
  • 【一】进程到底是个啥?
  • [蓝桥杯] 双指针、BFS和DFS与图论问题
  • 编译原理陈火旺版第四章课后题答案
  • 【LeetCode】剑指 Offer(25)
  • 【数据结构】链表OJ
  • 电子工程师必须掌握的硬件测试仪器,你确定你都掌握了?
  • 高速PCB设计指南系列(四)
  • ODrive入门配置
  • 快速测试两台服务器间的网速(ChatGPT回复)
  • 彻底搞懂nodejs事件循环
  • Linux基础命令大全(下)
  • Matplotlib从入门到精通05-样式色彩秀芳华
  • < CSS小技巧:那些不常用,却很惊艳的CSS属性 >
  • GPT-4 重磅发布,用户直呼:强得离谱
  • 【JavaSE】知识点总结(3)
  • MySQL基础(三)聚合函数、子查询
  • 深度学习数据集处理基础内容——xml和json文件详解
  • 蓝桥杯基础技能训练
  • 【Kubernetes】第二十八篇 - 实现自动构建部署
  • 蓝桥杯刷题第十天
  • 网络安全缓冲区溢出与僵尸网络答题分析
  • 机器学习:逻辑回归模型算法原理(附案例实战)
  • IO流之 File 类和字节流