一、控件有属性,事件和方法。mfc把它封装了两个接口。
属性,是对外公布的类成员变量,添加属性可以很方便使用者,如js,php,swf等网页或其他对控件外观或值进行方便的修改。让
ocx控件使用起来就像一个常用如按钮控件一般。
方法,也是对外公布的,这些方法能被外部如js,asp等多种语言调用,内部用c++实现,很好让c++和其他语言配合使用。
事件,是ocx控件的响应事件,比如单击,双击事件其实和其他的如按钮控件查不多啦
其实,ocx控件就和其他控件差不多,只是ocx控件是基于ATL组件实现的,用的时候需要注册。
二、控件的详细制作就不说了,建立控件工程,右击两个接口就可以添加属性事件和方法了。
三、控件的注册、卸载
1.运行 regsvr32 ocx控件全路径名 卸载 regsvr32 -u ocx控件全路径名
2.写成bat批出里 regsvr32 %~dp0控件名.ocx
regsvr32 -u %~dp0控件名.ocx
四、获取控件的注册路径
1.简单的方法:在app类InitInstance里面增加代码处加上以下代码:
g_szOcxName = this->m_pszExeName; //获取控件名
g_szOcxName += ".HLP"; //得到 控件名.HLP
int nTmp = g_szOcxName.GetLength(); //得到 控件帮助文件路径形如: c:\ocx\Form.HLP
nTmp = g_szOcxPath.GetLength() - nTmp;
g_szOcxPath = g_szOcxPath.Left(nTmp); //得到 控件路径 如: c:\ocx\
2:还可以通过方法动态获取
HMODULE hh = NULL;
hh = ::GetModuleHandle("控件名.ocx"); //获取控件句柄
char buff[200]={0};
CString strPath = ::GetModuleFileName(hh,buff,200); //获取控件全路径名
int iPos = strPath.AnsiPos("控件名.ocx");
if(iPos>0) iPos = iPos -1;
strPath = strPath.SubString(0,iPos); //去掉 控件名.ocx 或的注册路径
本文介绍了OCX控件的基本概念,包括属性、事件和方法,强调其在MFC中的实现。OCX控件基于ATL组件,可用于与其他语言如JS、PHP等交互。此外,还详细阐述了控件的创建过程、注册与卸载方法,并提供了获取控件注册路径的两种方式。
2090

被折叠的 条评论
为什么被折叠?



