【发布时间】:2010-10-12 18:13:48
【问题描述】:
我了解 Windows API 使用“类”,依赖于 WNDCLASS/WNDCLASSEX 结构。
我已经成功通过windows API Hello World应用,了解到这个类是我们自己的windows使用的,也有windows核心控件使用的,比如“EDIT”、“BUTTON”等。 我也明白它与 WndProc 有某种关系(它允许我为它定义一个函数)
虽然我可以找到有关此类的文档,但我找不到任何解释概念的内容。
到目前为止,我发现的唯一信息是:
一个窗口类没有任何关系 C++ 类。
真正没有帮助(它告诉我它不是但不告诉我它是什么)。事实上,这只会让我更加困惑,因为我很想将 WNDCLASSEX 与 C++ 类相关联,并认为“WNDCLASSEX”代表一个控件类型 . 所以,我的第一个问题是这是什么?
其次,我知道可以在类中定义 WndProc。但是,窗口也可以从子控件(或窗口,或它们在 Windows API 中调用的任何东西)获取消息。 怎么会这样?
最后,什么时候定义一个新类是一种好的编程习惯?每个应用程序(用于主框架)、每个框架、每个我定义的控件(例如,如果我创建自己的进度条类)?
我知道 Java/Swing、C#/Windows.Form、C/GTK+ 和 C++/wxWidgets,所以我可能会理解与这些工具包的比较。
【问题讨论】: