原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/51374200
最近项目中利用ocx封装了底层视频播放及处理的控件,以供c#和web调用。对ocx的属性、方法和事件刚入门,对ocx上控件和容器的参数传递和数据交互等问题,纠结了很久,虽然最终项目上的问题都解决了,但是对ocx的自定义消息还是搞不定。写几篇ocx入门的博文,记录一下。
IDE:vs2010,64位win7系统。
关于c++开发ocx讲解详细的博文:http://blog.csdn.net/frankiewang008/article/details/7890032。里面关于ocx属性、方法和事件讲的非常详细。具体的添加属性,事件就不写了,直接贴个截图和完整的demo例子,以备以后忘记。这里只是简单记录一下学习过程,ocx都是基于mfc的,首先测试了一下vc++深入详解中的时间控件例子。代码下载:c++深入详解中的ocx时间控件 测试时间控件:测试时间控件的c++代码
1.ocx的调试:vs自带的TstCon.exe(在D:Program Files (x86)Microsoft Visual Studio10.0Samples2052VC2010SamplesC++MFColeTstConDebug下,没有的话编译一下工程,就会生成) 。或者直接在c++、c#、web容器下测试
2.ocx的添加属性、方法、事件和消息的位置,新手注意。
3.ocx生成后的注册:vs2010下生成ocx后会自动注册,如果没有注册,可利用win自带的regsvr32进行注册或反注册。
如:注册:regsvr32 C:UsersAdministratorDesktop博客My_ocx1ReleaseMy_ocx1.ocx
反注册: regsvr32 C:UsersAdministratorDesktop博客My_ocx1ReleaseMy_ocx1.ocx /u
反注册: regsvr32 C:UsersAdministratorDesktop博客My_ocx1ReleaseMy_ocx1.ocx /u
注意:
1.实际项目开发中要考虑ocx需要的dll或其他文件,把生成ocx的相关dll和配置文件放在一个路径下注册,否则可能会失败
2.要考虑win下32位还是64位系统,最好把ocx和相关dll等放在在系统目录下。
32位系统目录:C:WindowsSystem32
64位系统目录:C:WindowsSysWOW64
3.实际中可能还需要以管理员方式运行cmd。
4.ocx控件在c++/c#中的添加
5.简单测试