在本篇文章中,我们主要介绍按钮控件的内容,自我感觉有个不错的建议和大家分享下
一
媒介
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方法,胜利。
四
VC6调用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
文章结束给大家分享下程序员的一些笑话语录:
爱情观
爱情就是死循环,一旦执行就陷进去了。
爱上一个人,就是内存泄露--你永远释放不了。
真正爱上一个人的时候,那就是常量限定,永远不会改变。
女朋友就是私有变量,只有我这个类才能调用。
情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。