为了方便的移植及重用自己编写的控件,这时候我们就要用到ActiveX控件技术来封装自己的控件类。
封装一个ActiveX控件需要考虑:
1、提供用户设置的属性。
2、提供用户使用的接口函数。
3、控件事件的通知。
4、控件响应用户的操作。
5、控件的绘制。
6、异常处理。
添加用户设置属性方法:
打开类视图展开XXlib选择控件接口右键菜单添加-〉添加属性打开属性添加向导,设置属性后完成。
在idl文件自动生成代码:
如果需要怎加自定义的枚举属性可以在之前定义
属性这样声明:
在控件头文件中生成代码
在控件cpp文件中生成代码
添加用户使用的接口函数:
与添加属性的方法一样,在添加菜单选择添加方法。
添加控件事件的通知
打开类视图展开XXlib选择控件事件接口(一般为_DXXXXEvents)右键菜单添加-〉添加方法打开方法添加向导,设置后完成。
COleControl 已经封装了一些内置的事件
事件映射宏如下:
函数原型
添加自定义的事件通知使用向导后需要编写一些代码,看代码段
控件响应用户的操作:
一般来说需要响应的是
WM_MOUSEMOVE;WM_LBUTTONDOWN;WM_LBUTTONUP;WM_MOUSELEAVE;WM_RBUTTONDOWN
这里只补充一下关于WM_MOUSELEAVE响应的方法;
首先在MOUSEMOVE函数中使用如下方法让系统通知WM_MOUSELEAVE
然后在响应WM_MOUSELEAVE消息后把m_bSetTrack变量重置一下即可
控件的绘制:
void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
rcBounds为控件绘制大小其实就是控件客户区域,rcInvalid为更新绘制区域
一般可以使用包装的双缓冲类进行绘制
包装类如下
调用例子
异常处理:
控件异常处理一般来说我基本上没有考虑,但是这个肯定是需要的

本文总结了ActiveX控件的开发过程,包括如何封装控件、设置属性、提供接口函数、处理控件事件、响应用户操作、绘制控件以及异常处理。通过MFC库,详细介绍了添加属性、方法、事件通知的步骤,并提供了相关代码示例。
2223

被折叠的 条评论
为什么被折叠?



