VS2019 开发 MFC ACtivex (OCX)控件
需求:
js调用ocx方法,传递字符串到ocx控件中显示
操作步骤:
一、新建 ocx 项目

二、填写项目信息

三、完成项目创建

四、修改项目属性
打开 项目属性 -> 链接器 -> 常规 -> 逐用户重定义 改为 是

五、打开资源视图,创建 dialog

六、修改 dialog 属性
边框 改为 None
样式 改为 child
可见 改为 True (*:必须设置成可见,不然网页中看不见这个窗口)
七、添加一个 edit 控件,用来和网页做交互
八、双击 dialog,添加类文件,基类(CDialog)

九、给新建的 test 类添加一个方法,用来和网页交互,网页传递数据过来,ocx进行显示
test.h
public:
long myShow(BSTR text);
test.cpp
long Test::myShow(BSTR text)
{
SetDlgItemText(IDC_EDIT1, text);
return 0;
}
十、在类视图中,打开类向导,添加 create 消息,双击添加到现有处理程序,确认


十一、操作 MyOCXCtrl 类
MyOCXCtrl.h
#include "Test.h" public:
Test tt;
MyOCXCtrl.cpp
// CMyOCXCtrl::OnDraw - 绘图函数
void CMyOCXCtrl::OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& /* rcInvalid */)
{
if (!pdc)
return; // TODO: 用您自己的绘图代码替换下面的代码。
//pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
//pdc->Ellipse(rcBounds);
tt.MoveWindow(rcBounds, TRUE);
}
int CMyOCXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1; // TODO: 在此添加您专用的创建代码
tt.Create(IDD_DIALOG1, this);
return 0;
}
十二、在类视图中,添加一个方法,给网页调用


十三、在 MyOCXCtrl 类中完善添加的方法
MyOCXCtrl.cpp
LONG CMyOCXCtrl::addEditText(BSTR text)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); // TODO: 在此处添加分派处理程序代码
tt.myShow(text);
return 0;
}
十四、生成,然后注册ocx
reg.bat
cd /d %~dp0
regsvr32 ./xxx.ocx
十五、编写 HTML 进行测试
classID 是 MyOCX.idl 文件中 最后一个 uuid (CMyOCXCtrl 的类信息)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<object id="Test" classid="CLSID:d75dee6b-c9a5-4bcb-9644-ce39c033a228" width="400" height="300">123</object>
<button onclick="test()">test</button>
<script>
function test(){
Test.addEditText("hahaha")
}
</script>
</body>
</html>

完结!
VS2019 开发 MFC ACtivex (OCX)控件的更多相关文章
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网 ...
- c#调用c++制作的基于mfc的ocx控件
原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/51286926 原文中有问题部分已修改. c#调用c++制作的基于mfc的ocx控件 ...
- VS2008 ActiveX(ocx控件)的调试工具ActiveX Control Test Container安装说明
vs2008中的TSTCON( ActiveX Control Test Container )工具非自动安装,而是作为一个例程提供.所以应找到该例程,并编译: 如vs2008安装在默认路径则 1, ...
- ActiveX (ocx) 控件 在vs2010 上debug 的方法
1.在项目的属性中配置Debug,设置调试选项卡中的“命令”.“命令参数”.“工作目录”,“命令”为IE的路径,“命令参数”为自己写的htm页面路径(因htm中未配置ocx路径,所以直接把htm放在了 ...
- vs2010开发activex(MFC)控件/ie插件(三),js调用ocx控件的接口函数
原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/50802280 js调用ocx控件的接口函数,先看demo效果: 简单测试过程 ...
- [转]C#开发ActiveX控件,.NET开发OCX控件案例
引自:百度 http://hi.baidu.com/yanzuoguang/blog/item/fe11974edf52873aaec3ab42.html 讲下什么是ActiveX控件,到底有什么 ...
- MFC中开发ocx控件,html容器收不到ocx的事件Event
问题背景: MFC开发ocx控件,主窗口就是ctrl类,主窗口类中调度接口和事件映射添加,执行OK,外部html容器中接收事件成功,如下: ctrl.h中声明事件映射函数 void EVTPENSIG ...
- C#开发ActiveX控件,.NET开发OCX控件案例 【转】
http://xiaochen.2003.4.blog.163.com/blog/static/480409672012530227678/ 讲下什么是ActiveX控件,到底有什么作用?在网页中又如 ...
- 用ATL开发和部署ActiveX网页控件
用ATL开发和部署ActiveX网页控件 摘 要 ActiveX插件技术广泛的运用于B/S系统中,本文通过一个项目实例,详细介绍用ATL开发和部署ActiveX网页控件的过程.学习使用ActiveX让 ...
- 【VS开发】免费打工仔:一个完善的ActiveX Web控件教程
作者 David Marcionek. 翻译 免费打工仔 这个教程可以帮助你快速开发一个ActiveX控件.其中将要讲解关于ActiveX开发的一些基础概念,诸如方法(method).属性(prope ...
随机推荐
- docker-compose 安装gitlab
准备docker-compose.yml version: '3.6' services: web: image: 'registry.gitlab.cn/omnibus/gitlab-jh:16.7 ...
- 聊聊 HTTP 性能优化
哈喽大家好,我是咸鱼. 作为用户的我们在 "上网冲浪" 的时候总是希望快一点,尤其是抢演唱会门票的时候,但是现实并非如此,有时候我们会遇到页面加载缓慢.响应延迟的情况. 而 HTT ...
- Redis高级数据类型
## 1.Redis相关配置信息 服务器端设定 设置服务器以守护进程的方式运行 daemonize yes|no 绑定主机地址 (只能此ip访问) bind 127.0.0.1 设置服务器端口号 po ...
- CF1362C Johnny and Another Rating Drop(二进制、复杂度考虑)
看完数据范围\(n\in[1,1e18]\)就可以先猜一下要不是可以直接推公式,不能暴力去做,更不能遍历一遍,又看到这种2进制的题目,要猜是不是\(log\)级别的复杂度. 可以依次考虑每一位 \(所 ...
- Git修改最近一次提交的日志信息
一.问题由来 当前自己所在的项目组中,每次发完一个版本后,就需要创建个人新版本的git提交凭证,其实就是系统自动 生成的一串编码,如果没有这个凭证,代码是提交不了的,这是公司制定的开发规范之一.这两天 ...
- base64实现图片多图上传功能
function webPic_upload($savepath,$url_data){$mark=ture; $pic_url=''; if(is_array($url_data)){ foreac ...
- Nordic芯片调研简析
一 公司简介: Nordic semiconductor是一家在奥斯证券交易所(OSX:NOD)上市的挪威无晶圆厂半导体公司,专门研究IoT的无线技术.Nordic的声誉建立在领先的技术和开发工具之上 ...
- display标签交替显示不同行颜色
问题 想要一个更加简单的支持列表数据分页和排序的方法. 解决方案 使用Display标签库和JSP标签库. 例4.13介绍了一个JSP页,它使用4.5节中的数据模型显示美国总统列表.这个JSP页面使用 ...
- d3d12龙书阅读----d3d渲染流水线
d3d12龙书阅读----d3d渲染流水线 输入装配器阶段 在输入装配器阶段,会从显存中读取顶点与索引这种几何数据,然后根据图形基元的类型,根据索引将顶点组装起来. d3d中的图形基元 我们来看看几种 ...
- NJOPT自控第三次积分赛--风力摆小结
NJOPT自控第三次积分赛--风力摆小结 题目 题目就不放了,百度一搜就有,就是2015国赛的风力摆.. 方案 我们队采用的主控是STM32F401CCU6(科协传统),性能完全够用:姿态传感器采用的 ...