MFC控件记录

最近有个方案,要用c++开发控件给第三方使用,之前没怎么接触过c++(基本上从0开始),上网搜了一天,遇到的问题记录如下。

需求:给第三方提供一个控件,控件里面需要嵌入一个网页,并且该控件可以和网页交互。

参考的文章:

https://blog.csdn.net/wangzhiyang925/article/details/38715605

https://blog.csdn.net/liuyi1207164339/article/details/46763377

https://blog.csdn.net/charlessimonyi/article/details/18450783

1.创建ActiveX控件

用管理员方式打开vs2015(ActiveX控件注册要用到管理员权限),创建MFC ActiveX控件,命名MyActiveX,全都选默认就好

2.创建完毕  可能会提示 一些文件找不到 ,这时需要设置一下调试目录

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
E:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include
E:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include
C:\Program Files (x86)\Windows Kits\8.1\Include\um

注意这些目录可能跟你vs安装的版本 位置有些出入,要去看看是不是确实有这些文件夹

可能汇报 setdefaultDLldirectories 这个错误

设置库目录 

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10150.0\ucrt\x86

 

3.新建一个MFC的程序 作为控件载体,都选默认就好了

然后在资源视图里面 关于对话框里面 直接插入我们刚才创建的控件,就能看到控件是运行成功了

将MFCApplicationTest 启动 打开关于对话框 既可以看到 我们的控件被插入进来了。

4.接下来 我们在MyActiveX 里面 加两个按钮。

这部分 这篇讲的比较详细

https://blog.csdn.net/wangzhiyang925/article/details/38715605

首先 MyActiveX从 MFCApplicationTest中移除,要不然重新生成时会提示被占用,而无法生成。

然后我们新建一个资源 我们接下来就把这个dialog 插入到上面我们建的控件中。 我会多粘一些图,MFC基本0知识

然后修改对话框属性:Border改为None,Control改为Ture,ID改为IDD_DIALOG1,Style改为Child,System改为False,Visible改为True

然后 双击 空白位置,创建CViewDialog类

在MyActiveXCtril.h 声明我们刚才建立的这个类

在MyActiveXCtrl.cpp中初始化这个类

项目->类向导(crlt+shift+X)

添加对应代码

然后将控件重新生成加入到Test中

基本上第一部分工作就完成了。

接下来 我尝试将 控件Microsoft Web Browser 加入到 MyActiveX中

然后执行的时候 会报这个错误,就卡到这里了(我直接在Test里面插入Microsoft Web Browser就是好的。。。)

另外 c++ 与js的交互 参考这个人的文章就好了,里面也有代码,我下完了执行 是可以完成相互交互的。

https://blog.csdn.net/charlessimonyi/article/details/18450783

感慨一下,还是C#的Activex控件做起来舒服点.......

代码记录在这

https://download.csdn.net/download/bornonew/11224618

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值