OCX是窗口上的控件如Buttion。
程序运行时必须将生成的OCX控件拷贝到可执行目录下。
MFC Activex控件工程中
.idl是对外的接口文档,所有的对外的接口都在该文档中声明,这个文档为客户程序提供了本控件的属性、方法以及可能相应的控件的接口。
*APP类是控件主程序模块,定义了控件的注册、删除、等功能,一般不会动。如有需要我们可以在其中的initinstance和Exitinstance中定义我们自己的初始化和终止操作代码,一般也就是一些资源的初始化和销毁。
Ctrl类是控件类,我们要做的控件的基本功能都在这个类中实现。
PropPage是属性页类,这个类实现了在开发时设定控件属性的对话框。
常用事件添加方法。
在类视图中右键Ctrl控件类,在菜单中选择添加事件。
在添加事件向导中的事件名称中选择Click,也就是鼠标点击事件
Libcmt.lib:error LNK2005: __initp_misc_Invarg y已经在libcmt.lib里面定义
使用情况:编写的OCX封装了别的lib文件,然而和这个lib文件的“编译环境”跟“调用程序”不一致导致;(如:MFC使用共享模式和静态连接模式,运行时库的调用方式保持一致等)
编译时 提示error PRJ0050:未能注册输出。请确保你有修改注册表的权限;
解决办法:这种问题,一般在你调用了别的已经封装好的库文件,这个时候就需要你把调用的库文件放到你的程序的输出文件同目录下,并在头文件里配好路径,因为你的OCX需要注册但是你调用的库文件在OCX使用时也需要注册,已有在同目录下,编译器才会把OCX文件和其所调用的库文件都注册;
添加接口时方式
选中XXXlib 下的XXXocx ,记得不是XXXEvents,只有在这里添加接口,这些接口才会对外调用;
添加接口的操作界面不好使,如下图:被圈中的框不能选择等
解决办法:将*.ncp文件删除就可以了;
5.在WIN7下有时候调用OCX,或者使用应用程序中有调用OCX的,请注意尽量先获取管理员权限;