【摘要】:从自定义的空白窗口开始开发出一个控件,无疑是比较辛苦的工作。其实前面章节中的自绘控件,就是一种特殊控件二次开发的方法,但有很多控件没有自绘属性。不支持自绘的控件进行二次开发,主要是编写代码改造控件的绘图和操作的消息映射函数,如OnPaint和OnMouseMove等。3)在类视图中添加一些窗口显示与鼠标操作相关的消息映射函数,如图11-19所示。显然基于标准控件的二次开发,比从空白窗口开始重新开发控件的过程简单很多。
从自定义的空白窗口开始开发出一个控件,无疑是比较辛苦的工作。如果在标准控件的现有功能的基础上进行改造,则可以节省不少开发的工作量,这就是控件的二次开发。其实前面章节中的自绘控件,就是一种特殊控件二次开发的方法,但有很多控件没有自绘属性(Ownerdraw)。不支持自绘的控件进行二次开发,主要是编写代码改造控件的绘图和操作的消息映射函数,如OnPaint和OnMouseMove等。
创建一个工程名为“sl”的基于对话框程序,用于演示对(CSliderCtrl类)滑块控件进行二次开发,将其改造成为一个播放器中的“进度条”。
1)在类视图中添加CSliderCtrl的派生类CTestSld,并修改头文件。
2)在源文件(TestSld.cpp)中,修改构造函数初始化成员变量。
3)在类视图中添加一些窗口显示与鼠标操作相关的消息映射函数,如图11-19所示。
图11-19 添加多个消息映射函数
4)修改以上建立的所有消息映射函数的代码。
(www.chuimin.cn)
5)在主对话框中添加一个滑块控件,ID设为IDC_SLIDER,如图11-20所示。
图11-20 编辑主对话框资源
6)使用类向导对滑块控件建立关联变量(CTestSld类型),如图11-21所示。
图11-21 添加控件型关联变量
7)注意要在主对话框类的头文件中,包含刚开发好的CTestSld类的头文件。
8)编译并运行,测试代码,如图11-22所示。
显然基于标准控件的二次开发,比从空白窗口开始重新开发控件的过程简单很多。
图11-22 查看运行结果
相关推荐