applegreen-越简单愈快乐

春有百花秋有月,夏有凉风冬有雪。若无闲事挂心头,便是一年好时节。

简单ocx控件制作方法(原创)


    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中的方法。
 将编译通过的release目录的HelloWorld.ocx与Html存放在同一文件夹下,打开html页面,页面将谈出对话框,信息为"Hello World!-- AppleGreen".

PS:因空间限制,不能将完成代码提供给大家,如有需要,留下邮件地址。
     测试效果的下载见:ocx与html下载

posted on 2005-09-08 14:15 青苹果 阅读(2272) 评论(4)  编辑 收藏 网摘 所属分类: 0. ASP.Net

评论

#1楼 2005-09-08 15:06 dudu      

1、多图片请使用摘要方式发布。
2、这样文章应该放在其他技术区。
3、欢迎你去C++博客(www.vcblog.net)注册。
  回复  引用  查看    

#2楼[楼主] 2005-09-08 15:13 青苹果      

多谢dudu提醒,我会马上修正。
  回复  引用  查看    

#3楼 2006-03-17 22:00 Meteors[未注册用户]

青苹果您好,我是一个程序爱好者,请问能否给我关于这篇文章的VC源码,我的信箱是meteorssnow@hotmail.com另外能否告知我您的联系方式,比如QQ,MSN之类的,我想我会有很多方面需要向您求教的,谢谢。   回复  引用    

#4楼 2009-03-26 21:41 wudixiaoxie[未注册用户]

您好!我真的挺需要这个代码,希望您能将源码发给我,在下非常感谢,我的油箱是wangdi198610242sina.com   回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 232456




相关文章:

相关链接: