原文:http://www.cnblogs.com/joinclear/archive/2013/05/21/3091934.html

0前言

1、OCX是典型的ActiveX控件,常见的OCX控件有很多,IE浏览器、Word、Excel等都提供各种各样的OCX控件。
2、OCX控件的优点是可以在其他应用程序中嵌入使用。OCX控件做为插件、外挂式的应用非常灵活方便。
3、一般用的比较多的是做为视频、图片、图表等显示区域控件。最近碰到几个按钮的功能要封装成OCX控件,供其它程序使用。网上大概搜索了下,资料不多,于是自己写了下来,以供查找。

1 创建OCX项目

1、打开VC6.0,创建MFC ActiveX项目,工程名称:OcxDemo。

2、按照向导步骤操作,点击“完成”创建项目成功。

3、在OcxDemoCtrl.h文件中定义“增加”按钮。

//按钮IDC
#define IDC_BUTTON_ADD 0x2001 //"增加"按钮
private:
//"增加"按钮
CButton m_BtnAdd;

4、增加自绘“增加”按钮方法。

5、在OcxDemoCtrl.cpp新生成的CreateBtnAdd方法中添加创建按钮相关代码。

m_BtnAdd.Create(_T("Add"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(10,10,60,30), this, IDC_BUTTON_ADD);

6、对“增加”按钮,增加响应事件。

//OcxDemoCtrl.h
private:
//"增加"按钮
CButton m_BtnAdd;
//"增加"按钮单击响应
void OnButtonAdd();
//OcxDemoCtrl.cpp
BEGIN_MESSAGE_MAP(CActiveXDemoCtrl, COleControl)
//{{AFX_MSG_MAP(CActiveXDemoCtrl)
// NOTE - ClassWizard will add and remove message map entries
// DO NOT EDIT what you see in these blocks of generated code !
ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)
//}}AFX_MSG_MAP
ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
END_MESSAGE_MAP() void COcxDemoCtrl::OnButtonAdd()
{
MessageBox("增加");
}

7、删除OnDraw中代码。

//pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
//pdc->Ellipse(rcBounds);

8、编译生成OcxDemo.ocx。

9、源码:OcxDemo.rar

2 测试OcxDemo.ocx

1、打开ActiveX Control Test Container工具,插入OcxDemo.ocx。

2、Invoke:CreateBtnAdd方法。

3、测试CreateBtnAdd方法,成功。

3VC6调用OCX控件

1、打开VC6.0,创建MFC AppWizard[exe]对话框项目,工程名称:OcxTestDemo。

2、插入OcxTestDemo.ocx到控件面板。

3、对控件添加关联成员变量:m_OcxDemoCtrl。

4、BOOL COcxTestDemoDlg::OnInitDialog()添加自绘“增加”按钮方法。

m_OcxDemoCtrl.CreateBtnAdd();

5、编译生成OcxTestDemo.exe,查看调用OcxDemo.oxc效果。

6、源码:OcxTestDemo.rar

VC6.0开发OCX按钮控件的更多相关文章

  1. IOS开发之按钮控件Button详解

    reference:http://mxcvns.lofter.com/post/1d23b1a3_685d59d 首先是继承问题,UIButton继承于UIControl,而UIControl继承于U ...

  2. VC6.0 MFC中WebBrowser控件禁止新窗口弹出的解决办法

    http://blog.csdn.net/gnorth/article/details/7258293 分类: WebBrowser MFC 禁止新窗口2012-02-14 15:25 1787人阅读 ...

  3. 安卓开发_复选按钮控件(CheckBox)的简单使用

    复选按钮 即可以选择若干个选项,与单选按钮不同的是,复选按钮的图标是方块,单选按钮是圆圈 复选按钮用CheckBox表示,CheckBox是Button的子类,支持使用Button的所有属性 一.由于 ...

  4. 基于C#开发的扩展按钮控件

    最近在准备一套自定义控件开发的课程,下面将第一个做的按钮控件分享给大家. 其实这个控件属于自定义控件中的扩展控件,与组合控件和GDI+开发的控件不同,这个控件是继承原生的Button, 这个控件的目的 ...

  5. MFC编程入门之二十三(常用控件:按钮控件的编程实例)

    上一节讲了按钮控件Button.Radio Button和Check Box的基本用法,本节继续讲按钮控件的内容,通过一个实例让大家更清楚按钮控件在实际的软件开发中如何使用. 因为Button控件在前 ...

  6. Fixjs实践——标签、按钮控件

    Fixjs介绍 Fixjs是一款javascript界面基础框架,主要为开发复杂组件提供底层的框架支持. Fixjs 0.3.0主要增加了文本显示类fixjs.text.TextField 支持的主要 ...

  7. VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)

    上一节VS2010/MFC编程入门教程中鸡啄米讲了按钮控件Button.Radio Button和Check Box的基本用法,本节就继续讲按钮控件的内容,通过一个实例让大家更清楚按钮控件在实际的软件 ...

  8. Atitit.获取swing ui 按钮控件的id 与名字 与JPDA 调试体系

    Atitit.获取swing ui 按钮控件的id 与名字 与JPDA 调试体系 1. Swing Inspector是一个Java Swing/AWT用户界面分析和调试工具,功能与firebug类似 ...

  9. 基于Jquery WeUI的微信开发H5页面控件的经验总结(2)

    在微信开发H5页面的时候,往往借助于WeUI或者Jquery WeUI等基础上进行界面效果的开发,由于本人喜欢在Asp.net的Web界面上使用JQuery,因此比较倾向于使用 jQuery WeUI ...

随机推荐

  1. 2019.4.2 HTML相关

    HTML页面的基本结构 html标签 页面的设置和文件的导入(页面标题) 要显示在页面上的标签 标签 h1---h6:一到六级标题 hr:分割线 br:换行 p:段落 em:斜体 strong:加粗 ...

  2. CAN2.0A帧格式 与 LIN帧格式 简单说明

    一.标准的2.0A帧格式 各字段解释:SOF帧开始标志比特是一个显性比特(0),由一个或多个准备发送帧的节点传输.SOF标志着帧的开始(或仲裁发送帧的权利),并用于“硬同步”总线上的设备.只有在开始发 ...

  3. python pandas使用chunksize异步拆分固定行数的文件

    import pandas as pd import asyncio from collections import defaultdict collect = defaultdict(list) # ...

  4. Java学习之路(三):Java中的数组

    数组的概述和定义的格式 数组的作用: 用来存储同种数据类型的多个值 数组的基本概念: 数组是存储同一种数据类型多个元素的集合.就相当于一个容器. 注意:数组既可以存储基本数据类型,也可以存储引用数据类 ...

  5. 通过反射获取及调用方法(Method)

    1.获取方法使用反射获取某一个类中的方法,步骤:①找到获取方法所在类的字节码对象②找到需要被获取的方法 Class类中常用方法: public Method[] getMethods():获取包括自身 ...

  6. WINDOWS安装mysql5.7.20

    MSI安装包链接 http://pan.baidu.com/s/1mhI0SMO 提取密码 gaqu 安装前要把老版本的MYSQL卸载干净 之前用官网的archive免安装版安装一直失败,放弃,用MS ...

  7. Java入门系列-23-NIO(使用缓冲区和通道对文件操作)

    NIO 是什么 java.nio全称java non-blocking(非阻塞) IO(实际上是 new io),是指jdk1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(bo ...

  8. 在web应用中使用文件

    使用HTML5 DOM新增的File API,现在可以让网页要求用户选择本地文件,并且读取这些文件的信息了.选择的方式既可以是HTML<input> 元素,也可以是拖拽 . 你可以在chr ...

  9. easyui导出当前datagrid数据(含表头)

    JS代码 //导出当前DataGrid数据 function doExportCommon() { var list = getCheckedRowCommon(); var exportList = ...

  10. JavaScript call 和apply 的理解

    这两个方法对于一些新手而言难耐弄清他们到底是怎么回事,对我我来讲我对call和apply的方法理解的也比较含糊.今天闲来无事准备彻底搞call和apply到底是怎么回事.本着互联网分享精神.我将我自己 ...