vs2015开发在网页中调用的ocx控件详解(二)
在上一篇博客中介绍了ocx控件的基本创建,这里主要讲解如何在网页中与ocx控件进行信息传递。
1 ocx添加成员变量
在类视图中右键ocx_testLib下的_Docx_test,选择添加属性
变量类型选择BSTR,属性名输入jsStr
ocx添加了这种类型的变量,就是在js中根据变量名jsStr传入值,那么C++这边接收的值的变量就是m_jsStr
添加完成后,在Cocx_testCtrl类中自动创建了变量响应函数
OnjsStrChanged
在该方法中添加如下一行:
m_jsStr = m_jsStr+"from C++";
在html网页中测试添加的属性:
<html>
<head><title>test</title><meta charset="utf-8" />
</head>
<script type="text/javascript">function test1() {ocx.jsStr="111";alert(ocx.jsStr);}
</script><body>
<object id=ocx border=0 classid=CLSID:16EEE8BE-67C3-4A6D-B892-DBE374724FA8 width="400" height="400";>
</object>
<div align="center"><input class="submit_01" type="button" value="ocx控件测试" onclick="test1()" />
</div>
</body>
</html>
从这里可以看到js传入的值在C++里被改变了。
2 添加属性Get/Set方法
在添加属性中也可以选择不是变量,而是get和set方法
将属性名设置设置为jsStr1,这里不要去添加参数类型。
BSTR Cocx_testCtrl::GetjsStr1()
{AFX_MANAGE_STATE(AfxGetStaticModuleState());CString strResult;// TODO: 在此添加调度处理程序代码strResult = L"from C++ 1111";return strResult.AllocSysString();
}void Cocx_testCtrl::SetjsStr1(LPCTSTR newVal)
{AFX_MANAGE_STATE(AfxGetStaticModuleState());// TODO: 在此添加属性处理程序代码SetModifiedFlag();
}
在js中调用的这种形式,也是变量名jsStr1
<html>
<head><title>test</title><meta charset="utf-8" />
</head>
<script type="text/javascript">function test1() {ocx.jsStr1="hhhhhh";alert(ocx.jsStr1);}
</script><body>
<object id=ocx border=0 classid=CLSID:16EEE8BE-67C3-4A6D-B892-DBE374724FA8 width="400" height="400";>
</object>
<div align="center"><input class="submit_01" type="button" value="ocx控件测试" onclick="test1()" />
</div>
</body>
</html>
3 添加函数方法
右键-添加方法,如下图所示:
然后输入添加的函数名称,选择返回类型,添加参数
点击完成,会自动在ocx_testCtrl.cpp中生成一个文件该函数,在函数添加如下几行代码:
BSTR Cocx_testCtrl::func(LPCTSTR name)
{AFX_MANAGE_STATE(AfxGetStaticModuleState());CString strResult;// TODO: 在此添加调度处理程序代码CString str1 = name;strResult = str1 + "hhc";return strResult.AllocSysString();
}
生成工程,然后在html里调用该函数func
<html>
<head><title>test</title><meta charset="utf-8" />
</head>
<script type="text/javascript">function test1() {var ret=ocx.func("hello");alert(ret);}
</script><body>
<object id=ocx border=0 classid=CLSID:16EEE8BE-67C3-4A6D-B892-DBE374724FA8 width="400" height="400";>
</object>
<div align="center"><input class="submit_01" type="button" value="ocx控件测试" onclick="test1()" />
</div>
</body>
</html>
可以看到,该函数调用成功。
vs2015开发在网页中调用的ocx控件详解(二)相关推荐
- 【QT】Qt调用OCX控件详解
OCX控件的注册 首先,调用ocx控件需要保证ocx本身是已经注册了的.如果没有注册请先按"Win+R"输入"cmd"打开命令窗口.然后输入regsvr32 + ...
- C#调用第三方ocx控件 (winform /aspx)
C#调用第三方ocx控件 1..net环境在工具箱上点右键,选择自定义工具箱,然后选择你需要的COM或者OCX控件就可以了. 2.在自定义工具箱中加入相应的控件,设置id,在客户端脚本中直接引用它的I ...
- OCX控件开发及WEB Javascript如何使用OCX控件
一.OCX控件开发 1.使用IDE版本: VS2010 2..基于MFC技术 开发OCX控件. 3..基本OCX开发过程 3.1.打开VS 2010 新建项目,选择MFC模板,"MFC ...
- 如何在多线程中调用winform窗体控件2——实例篇
如何在多线程中调用winform窗体控件2--实例篇 针对之前文章<如何在多线程中调用winform窗体控件>,下面举个我项目中的实际案例,这是一个我自定义控件在异步设置焦点时的代码.在新 ...
- 在VC中如何使用OCX控件 【来源:http://blog.csdn.net/wulang1114/article/details/4806089】
首先感谢网络中的各位高手,我的文章只是对你们文章的Copy和学习. 工作中客户提供了一个ocx控件,学习了如何使用它.发现网上没用针对像我一样菜鸟的文章,所以我总结一下我的学习成果供菜鸟学习使用. 1 ...
- C#中引用第三方ocx控件引发的问题以及解决办法
C#中引用第三方ocx控件引发的问题以及解决办法 参考文章: (1)C#中引用第三方ocx控件引发的问题以及解决办法 (2)https://www.cnblogs.com/XuPengLB/p/759 ...
- android什么控件能够输入多行文字,Android开发:文本控件详解——EditText(一)基本属性...
一.简单实例: EditText输入的文字样式部分的属性,基本都是和TextView中的属性一样. 除此之外,EditText还有自己独有的属性. 二.基本属性: hint 输入框显示的提示文本 te ...
- pythongui日历控件_“五一”快到了,用Python中PyQt5做一个日历,QCalendar控件详解...
前面内容,我们详细了解了PyQt5中的一些常用控件 精彩内容回顾 Python用PyQt5设计界面,如何正确显示一幅图片,QPixmap控件详解 拥有漂亮的笔刷才能绘制多彩界面,PythonPyQt5 ...
- dsscocx控件出错怎么办_MFC中如何在Ocx控件中来驱动ocx事件
我在写一个ocx控件.在控件内有一个自定义的类,处理逻辑相关的事件,比如MyClass.h和MyClass.cpp,当有人call我时,我就能在MyClass的线程内得到信息,现在我要通知给使用我这个 ...
最新文章
- zookeeper模拟监控服务节点宕机
- PIE_SDK.NET功能表
- STL之set和multiset(集合)
- windows网络编程第二版 第三章 Internet Protocol 读书笔记
- vim比vi做的一些改进
- eclipse Android 开发基础 Activity 窗体 界面
- 咖啡豆(JavaBean)•香
- [转载] Java 将字符串首字母转为大写 - 利用ASCII码偏移
- js 字符串插入_Vue.js 条件与循环
- 服务器芯片组c621,三路千兆LAN:GIGABYTE 技嘉 发布 C621-SU8 服务器主板
- centos mysql无法登录,解决centos下MySQL登录1045问题
- 在CentOS上安装Docker
- 【shell系列】之awk简单介绍
- 年轻时听到别人金钱至上的话语
- readonly strong nonatomic 和IBOutlet
- 关于java前端与后端的技术和工资对比!
- 怎么做SWOT分析模型PPT呢?
- 天翼网盘在线直链解析源码
- oracle执行计划相关
- Java 实验8 《抽象类与接口》
热门文章
- 王者荣耀无限火力服务器,王者荣耀无限火力8.0
- win10安装RabbitMQ教程
- reactos 0.0.21 编译
- hololens共享视野的例子记录
- Java文档注释【自制API】
- 教程篇(7.0) 04. FortiGate安全 NAT ❀ Fortinet 网络安全专家 NSE 4
- 推荐一个220V控制12V的电路板继电器-220v降压控制继电器
- 武则天用无字碑深切蔑视男人
- win10打开计算机管理闪退,win10系统下任务管理器闪退的解决方法
- 截止频率计算公式wc_已知低通滤波器的传递函数是G(s)=(G0*Wc)/(s+Wc),截止频率不超过2HZ,怎么求?...