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