zoukankan      html  css  js  c++  java
  • 简单ocx控件制作方法

    B/S系统中,客户端javascript的执行效率不高,运算速度慢,很多时候不得不采用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".

  • 相关阅读:
    2.3 Nginx服务的启停控制
    2.1 Nginx服务器安装
    三、函数 (SUM、MIN、MAX、COUNT、AVG)
    二、检索语句 SELECT、ORDER BY、WHERE
    一、数据库、SQL简介
    一、单元测试框架的基本使用介绍
    2.4 Nginx服务器基础配置指令
    第十七章 程序管理与SELinux初探--进程、进程管理(ps、top)
    第十五章 例行性工作(crontab)--循环执行的例行性工作调度 crontab(定时任务)
    java多线程04----------final和static
  • 原文地址:https://www.cnblogs.com/zhangpengshou/p/1223718.html
Copyright © 2011-2022 走看看