简单ocx控件制作方法(原创)
2005-09-08 14:15
441 查看
B/S系统中,客户端javascript的执行效率不高,运算速度慢,很多时候不得不采用ocx控件来实现一些功能。将简单的ocx的控件的制作方法提供给大家,一个参考。这是我做的第一个ocx控件。
打开Microsoft Visual C++6.0,新建一个MFC ActiveX工程,如下图:
点击确定,出现ActiveX ControlWizard,如下图:
选择Next,出现下图界面:
继续选择Next,创建工程HelloWorld:
在HelloWorldCtl.cpp中,修改如下地方:
// Dispatch and event IDs
public:
enum {
//{{AFX_DISP_ID(CHelloWorldCtrl)
// NOTE: ClassWizard will add and remove enumeration elements here.
// DO NOT EDIT what you see in these blocks of generated code !
dispidGetHello = 1L,
//}}AFX_DISP_ID
};
};
然后添加申明
BEGIN_DISPATCH_MAP(CHelloWorldCtrl, COleControl)
//{{AFX_DISPATCH_MAP(CHelloWorldCtrl)
DISP_FUNCTION(CHelloWorldCtrl,"GetHello",GetHello,VT_BSTR, VTS_BSTR)
//}}AFX_DISPATCH_MAP
END_DISPATCH_MAP()
接着添加成员
// Message maps
//{{AFX_MSG(CHelloWorldCtrl)
// NOTE - ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
afx_msg BSTR GetHello(LPCTSTR strBatchName);
//}}AFX_MSG
添加方法,这个方法返回"Hello World!"加上输入参数strBatchName。
BSTR CHelloWorldCtrl::GetHello(LPCTSTR strBatchName)
{
CString aa = (CString)strBatchName ;
CString rtnstr = "Hello World!" + aa;
return rtnstr.AllocSysString();
}
最后在Build的Configration中选择下图方式,
编译完成,在Release文件夹下产生ocx.
接着就是测试了:
将ocx提取出来,我采用Microsoft Control Pad来编辑,得到ocx控件的classid, 然后创建一个html页面,写入javascrip脚本,调用ocx中的方法。
var obj = document.getElementById("test");
alert(obj.GetHello("-- AppleGreen"));
将编译通过的release目录的HelloWorld.ocx与Html存放在同一文件夹下,打开html页面,页面将谈出对话框,信息为"Hello World!-- AppleGreen".
PS:因空间限制,不能将完成代码提供给大家,如有需要,留下邮件地址。
测试效果的下载见:ocx与html下载
打开Microsoft Visual C++6.0,新建一个MFC ActiveX工程,如下图:
点击确定,出现ActiveX ControlWizard,如下图:
选择Next,出现下图界面:
继续选择Next,创建工程HelloWorld:
在HelloWorldCtl.cpp中,修改如下地方:
// Dispatch and event IDs
public:
enum {
//{{AFX_DISP_ID(CHelloWorldCtrl)
// NOTE: ClassWizard will add and remove enumeration elements here.
// DO NOT EDIT what you see in these blocks of generated code !
dispidGetHello = 1L,
//}}AFX_DISP_ID
};
};
然后添加申明
BEGIN_DISPATCH_MAP(CHelloWorldCtrl, COleControl)
//{{AFX_DISPATCH_MAP(CHelloWorldCtrl)
DISP_FUNCTION(CHelloWorldCtrl,"GetHello",GetHello,VT_BSTR, VTS_BSTR)
//}}AFX_DISPATCH_MAP
END_DISPATCH_MAP()
接着添加成员
// Message maps
//{{AFX_MSG(CHelloWorldCtrl)
// NOTE - ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
afx_msg BSTR GetHello(LPCTSTR strBatchName);
//}}AFX_MSG
添加方法,这个方法返回"Hello World!"加上输入参数strBatchName。
BSTR CHelloWorldCtrl::GetHello(LPCTSTR strBatchName)
{
CString aa = (CString)strBatchName ;
CString rtnstr = "Hello World!" + aa;
return rtnstr.AllocSysString();
}
最后在Build的Configration中选择下图方式,
编译完成,在Release文件夹下产生ocx.
接着就是测试了:
将ocx提取出来,我采用Microsoft Control Pad来编辑,得到ocx控件的classid, 然后创建一个html页面,写入javascrip脚本,调用ocx中的方法。
var obj = document.getElementById("test");
alert(obj.GetHello("-- AppleGreen"));
将编译通过的release目录的HelloWorld.ocx与Html存放在同一文件夹下,打开html页面,页面将谈出对话框,信息为"Hello World!-- AppleGreen".
PS:因空间限制,不能将完成代码提供给大家,如有需要,留下邮件地址。
测试效果的下载见:ocx与html下载
相关文章推荐
- 简单ocx控件制作方法
- 简单ocx控件制作方法
- dsoframer.ocx控件编辑后保存在服务器端的简单方法
- 制作OCX控件简单流程
- 浅谈控件(组件)制作方法一(附带一delphi导出数据到Excel的组件实例)(原创)
- c#一种简单快速改变窗体风格和肤色的方法源码及其控件
- U盘启动CDlinux,U盘启动BT5,关键命令!原创!新加图文教程。新加0.971版制作方法。
- Asp.Net页面传值的方法简单总结【原创】
- 简单实用的分页控件 AspNetPager.dll 的使用方法
- vs2008 下如何开发.ocx控件的方法
- C# 用户控件调用主窗体的方法(简单的线程用法)
- c#一种简单快速改变窗体风格和肤色的方法源码及其控件001
- Tomcat运行php的简单方法 原创 2013年10月24日 15:48:08 标签:php /tomcat /执行 26287 整理自其他人的帖子: Quercus是Caucho公司采用纯Java
- C#自动实现Dll(OCX)控件注册的两种方法
- 在webform中清空多个控件的值的简单方法
- Webbrowser控件判断网页加载完毕的简单方法
- JS制作简单的日历控件【JS Date对象操作实例演示】
- 详解C#自动注册Dll(OCX)控件的两种方法(转)
- ocx控件注册方法
- unity3d简单血条的制作方法