1.注册C++函数。
//注册回调函数宏
//根据不同需要支持注册两个函数原型,注意CONNECT_JS_CALL_SIMPLE_HANDLER中注册的函数
//需要提前和HTML调用协调好,参数必须都为字符,负责会引起未知问题
#define CONNECT_JS_CALL_HANDLER(name, func, pContext) do \
{\
if (!CBKCallBackFuncContainer::GetFuncPtr()->NameId(L#name)) \
CBKCallBackFuncContainer::GetFuncPtr()->ConnectJSFuncHandler(L#name, (JSCallbackFunction)&func, FALSE, pContext);\
} while (FALSE);
 
 
CONNECT_JS_CALL_HANDLER(OpenCustomStockDlg, (JSCallbackFunction)&OpenCustomStockDlg, this);
 
2.被调函数声明。
static int OpenCustomStockDlg(DISPPARAMS* params, VARIANT* retval , void* pContext);
3.被调函数实现。
int CXXWindow::OpenCustomStockDlg(DISPPARAMS* params, VARIANT* retval , void* pContext)
{
CFinancialMainWindow* _pThis = static_cast<CFinancialMainWindow*>(pContext);
ATLASSERT(_pThis);
CString strCur = "0";
if (params->cArgs == 1)
{
strCur = params->rgvarg[0];
}
 
//_pThis->OpenLogingSetDlg(StrToLong(strCur));
CString strPara = _pThis->Get_SignPara();
CustomStockSynchronous dlgCustomStock(strPara);
dlgCustomStock.DoModal();
 
return 0;
}
 
4.html编写
<HTML>
<HEAD><TITLE>js 按键记录</TITLE>
</HEAD>
<script type="text/javascript">
function $(s){return document.getElementById(s)?document.getElementById(s):s;}
 
function keypress(e)
{
var e=e||event;
var currKey=e.keyCode||e.which||e.charCode;
if (currKey == 27)//ESC = 27
{
if (external != undefined)
{
external.KeyElvesClose("clear"); //关掉键盘精灵界面,传clear则清空键盘精灵字符串,不传或者为空则只关闭界面
}
}
else
{
if (external != undefined )
{
external.OpenCustomStockDlg(currKey); //向键盘精灵传字符
}
}
$("test1").focus();//设置焦点
}
 
</script>
<body >
 
<input type="text" id="test1" onkeypress="keypress(event);"/>
<p>文本框内按键触发键盘精灵</p>
</body>
</HTML>
 

JS调用C++的更多相关文章

  1. JS调用Android、Ios原生控件

    在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...

  2. 如何通过JS调用某段SQL语句

    如何通过JS调用某段SQL语句,这样的需求在报表.数据平台开发中很常见.以报表平台FineReport开发为例,例如在点击某个按钮之后,来判断一下数据库条数,再决定下一步操作.那这在后台如何实现呢? ...

  3. iOS开发--JS调用原生OC篇

    JS调用原生OC篇 方式一(反正我不用) 第一种方式是用JS发起一个假的URL请求,然后利用UIWebView的代理方法拦截这次请求,然后再做相应的处理. 我写了一个简单的HTML网页和一个btn点击 ...

  4. 通过js调用android原生方法

    有时候我们有这样一个需求,监听html中控件的一些事件.例如点击html中某个按钮,跳转到别的activity,复制某段文本. 首先是对webview的设置: myWebView = (WebView ...

  5. js调用php和php调用js的方法举例

    js调用php和php调用js的方法举例1 JS方式调用PHP文件并取得php中的值 举一个简单的例子来说明: 如在页面a.html中用下面这句调用: <script type="te ...

  6. android webView开发之js调用java代码示例

    1.webView设置 webView.getSettings().setJavaScriptEnabled(true);//设置支持js webView.addJavascriptInterface ...

  7. c#JS调用

    using MSScriptControl; using System; using System.Collections.Generic; using System.Reflection; usin ...

  8. Android 使用js调用Java

    效果如: 主要用到一个接口类:MyObject package com.example.jsdemo; import android.content.Context; import android.s ...

  9. JS调用OC方法并传值,OC调用JS方法并传值////////////////////////zz

     iOS开发-基于原生JS与OC方法互相调用并传值(附HTML代码)     最近项目里面有有个商品活动界面,要与web端传值,将用户在网页点击的商品id 传给客户端,也就是js交互,其实再说明白一点 ...

  10. JS调用JCEF方法

    坐下写这篇文章的时候,内心还是有一点点小激动的,折腾了一个多星期,踩了一个又一个的坑,终于找到一条可以走通的路,内心的喜悦相信经历过的人都会明白~~~~~今儿个老百姓啊,真呀个真高兴啊,哈哈,好了,废 ...

随机推荐

  1. runtime机制

    runtime(简称运行时),是一套 纯C(C和汇编写的) 的API.而 OC 就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 消息机制原理:对象根据方法编号SEL去映射表查找对 ...

  2. ES6形参默认值

    * 形参的默认值----当不传入参数的时候默认使用形参里的默认值 function Point(x = ,y = ) { this.x = x; this.y = y; } //定义一个点的坐标 fu ...

  3. JAVA 调用c++ 扩展 批评那些垃圾,

    //本人喜欢用命令行的方式,这样好理解原理 { 1 生成的要是X64 并且是release版本 不要预编译头的dll项目,就是创建的时是一个空dll项目 2 java 调用时要import com.m ...

  4. C++ 短信验证码/通知 - 代码示例

    //接口类型:互亿无线触发短信接口,支持发送验证码短信.订单通知短信等. // ///////////////////账户注册:请通过该地址开通账户http://user.ihuyi.com/regi ...

  5. Java中的线程Thread方法之---suspend()和resume()

    前篇说到了Thread中的join方法,这一篇我们就来介绍一下suspend()和resume()方法,从字面意义上可以了解到这两个方法是一对的,suspend()方法就是将一个线程挂起(暂停),re ...

  6. 创建用户的方法 3种mysql创建方法

    mysql创建用户的方法分成三种:INSERT USER表的方法.CREATE USER的方法.GRANT的方法.   一.账号名称的构成方式   账号的组成方式:用户名+主机(所以可以出现重复的用户 ...

  7. NXOpenC#_Training_1(cn)【转载】

  8. C语言-实例3个数由小到大排序

    VS2012 //C语言实例 3个数由小到大排序 #include <stdio.h> void main() { int a, b, c, t; printf("Please ...

  9. HDU5669

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:传送门  Portal  原题目描述在最下面.  给你n个点 ...

  10. [zz]使用OleDb,将Excel导入DataSet

    本方法,将传入的Excel文件内所有的Sheet内的数据都填充入DataSet中.这是一个简单快捷的方法,不足之处是不适合带有格式复杂的Excel文件.(比如:有合并单元格的) public clas ...