如果大家用过其它一些面向对象的高级语言(如:BCB 、 DELPHI 、 VB 等)可能会用到里面的GroupBox控件或者Panel控件,只要将其它控件拖入这两个控件里面,可以控件一起显示、一起隐藏等功能。VC没有提供Panel控件,但提供了一个GroupBox控件,而且这个控件只是一个简单的边框而已,无法做到里面的控件同时显示,同时隐藏的效果。
一次我在做一个程序时要用到Panel,VC中没有,只好用GroupBox代替,但我发现了上述问题。于是我想到了控件的SetParent()函数,使用这个函数确实可以达到其它控件随GroupBox同时显示或隐藏,但同时也出现了一系列新的问题,最显著的问题就是使用了SetParent()函数后,控件无法执行原来的成员函数。后来我想到一个新的办法:写一个GroupBox的扩展类,用CPtrArray数组管理所有所需的控件。好,不多说,现在开始
- 新建一个基于对话框的程序。新建一个类,类名为 CGroupBoxEx ,基类为CButton
- 重载 CGroupBoxEx 类的 Create 函数 ,函数代码如下: