作者:风尚宣城_588 | 来源:互联网 | 2023-05-17 17:07
我打算做一个button类,他有一些自己的功能,比如可以作多边形button,但是我发现自己写类,尤其在vc下,连最基本的功能都要写,比如立体效果,重画等等。我觉的我写的类里只要
我打算做一个 button类,他有一些自己的功能,比如可以作多边形button,
但是我发现自己写类,尤其在vc下, 连最基本的功能都要写,比如立体效果,
重画等等。
我觉的我写的类里只要有多边形的功能就可以了。立体效果不是可以继承CButton吗?
我们平时创建的button都可以选择是否立体,为什么自己派生的就不能用基类的了。
必须自己写??
为什么? 请高手将类似的问题帮我理清一下思路。
自己派生的类, 在编译器上画个可见的按扭, 他们怎么联系起来?
谢谢
8 个解决方案
你的了解父类是怎么实现他的功能的.有时候老爸能干的事,你就不能干.:)
立体?只是视觉的感觉,在重载了DrawItem后当然可以实现了,关键看你怎么画了。
你可以看看msdn,讲的很详细的,我以前作过这方面的东西
我的疑问是:
为什么基类有立体的处理, 我自己派生的类还要自己写呢?
着可能于重载了DrawItem有关了,其实立体就是在多画了几个边框,以达到立体的效果
而你需要改变按钮的外形,所以就要手写了,我的理解,你先看了msdn,试了后再说了
to alien)taiji:
谢谢,你的意思我明白,我知道drawitem函数的作用, 我的问题应该和c++有关。
是继承的问题。 为什么基类有的特性,我在派生类没有改变,为什么还要重写。
我知道立体就是多画几条线。但是为什么要画呢? 基类不是有这种选项吗?
DrawItem()在基类里负责画按钮外行,你如果要画出自己想要的形状就得重载这个函数,基类里这个函数的功能就被你的函数功能取代了,当然需要重画,我是这么理解的,不知对不对?
这就是虚函数的特征,如果你未重载 父类的 DrawItem(),那它就自己执行了父类的函数,如果你重载了,那在执行时就将指针指向了你重载的函数。