据我所知,CButton,CEdit等都是易于实现的易用类,但是为了覆盖它们并停止某些超类函数来实现自己的按钮功能,这是一个小小的问题。仅仅覆盖CWnd并从头开始是不是更实际?这更像是一个基于主体的问题,即从头开始是不好的做法?在我看来它更有意义,但我不想拥有被认为是错误编写的代码..?
答案 0 :(得分:1)
很难获得标准控件的所有细微差别,因此,如果您希望填写相同的角色,则应该从标准开始。
标准控件也可以放在对话框中,稍后再覆盖。需要明确创建一个普通的CWnd。
另一方面,覆盖微软设计控件的方式有时令人抓狂。
不幸的是,这最终是一次判决。每个案例都会有所不同,不可能提出全面的建议。
答案 1 :(得分:0)
你可以这样做,但如果你的自定义控件是一个按钮,那么继承CButton就会容易得多。
答案 2 :(得分:0)
嗯,最好从像CButton这样的类开始增强按钮,CEdit来增强编辑控件。这样您就不必重新编写控件的基本功能&控制通知消息。
就UI而言,与CWnd相比,您可以控制覆盖CButton中的UI。所以最好是增强CButton。
此外,请记住CButton可以是单选按钮,复选框等。使用普通CWnd获取所有这些意味着很多工作。