VC6.0开发OCX按钮控件
原文:http://www.cnblogs.com/joinclear/archive/2013/05/21/3091934.html
1、OCX是典型的ActiveX控件,常见的OCX控件有很多,IE浏览器、Word、Excel等都提供各种各样的OCX控件。
2、OCX控件的优点是可以在其他应用程序中嵌入使用。OCX控件做为插件、外挂式的应用非常灵活方便。
3、一般用的比较多的是做为视频、图片、图表等显示区域控件。最近碰到几个按钮的功能要封装成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
1、打开ActiveX Control Test Container工具,插入OcxDemo.ocx。
2、Invoke:CreateBtnAdd方法。
3、测试CreateBtnAdd方法,成功。
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
最新文章
- Nodejs开发(2.连接MongoDB)
- Javascript函数、构造函数、原型、类和对象
- 2014 Super Training #4 D Paint the Grid Again --模拟
- css3爆炸效果更换图片轮播图
- [Android Pro] Android Support 包里究竟有什么
- Java 的class文件关系
- java工程包的命名(-dev.jar,-javadoc.jar,jar)
- Linux关机命令
- Warning: World-writable config file '/etc/my.cnf' is ignored
- CI练手下,找找感觉
- collection系列用法-deque双向队列
- Controller 里面就只应该存放这些不能复用的代码(转)
- vue2 和 webpack 配置环境使用
- Flash与EEPROM
- ForkJoinPool 源码
- CentOS6.2上安装pip
- Communication Model
- Leetcode 1013. 总持续时间可被 60 整除的歌曲
- stm32 学习参考(转)
- android--------listview之适配器