0

我知道 CButton、CEdit 等都是易于实现的方便类,但是要覆盖它们并停止某些超类函数来实现自己的按钮功能,有点麻烦。重写 CWnd 并从头开始不是更实用吗?这更像是一个基于主体的问题,即像这样从头开始是不好的做法吗?在我看来,这更有意义,但我不想拥有被认为写得不好的代码..?

4

3 回答 3

1

很难获得标准控件的所有细微差别,因此如果期望您的角色扮演相同的角色,您可能应该从标准开始。

标准控件也可以放置在对话框中并在以后覆盖。需要显式创建一个普通的 CWnd。

另一方面,重写微软设计控件的方式有时会让人抓狂。

不幸的是,这最终是一个判断电话。每个案例都会有所不同,不可能一概而论。

于 2012-04-20T13:16:05.197 回答
0

你可以这样做,但是如果你的自定义控件是一个按钮,那么继承 CButton 会容易得多。

于 2012-04-20T13:16:24.760 回答
0

好吧,最好从 CButton 类开始增强按钮,从 CEdit 类开始增强编辑控件。这样您就不必重新编写控件的基本功能和控件通知消息。

就 UI 而言,与 CWnd 相比,您可以平等地控制在 CButton 中覆盖 UI。所以最好增强CButton。

此外,请记住 CButton 可以是单选按钮、复选框等。使用普通的 CWnd 获得所有这些将意味着大量工作。

于 2012-04-20T13:19:00.967 回答