注册窗口类的目的是什么?

时间:2011-12-14 19:16:49

标签: windows winapi

在Windows API应用程序中创建窗口时,通过WNDCLASSEXRegisterClassEx()注册窗口类的目的是什么?

2 个答案:

答案 0 :(得分:5)

主要目的是在消息队列中有待处理的内容时,让系统正确WndProc进行调用。

有一些标志,但主要观点是上述。

窗口类对应于'小部件的类型'在UI上:

  • 按钮
  • 复选框
  • 滚动条
  • 组合框
  • 列表框

WndProc是小部件行为的唯一驱动因素。

因此映射:小部件(控件类型) - > wndclass - > WndProc

答案 1 :(得分:5)

将窗口属性分离为CreateWindow()东西和RegisterClass()的东西很早就完成了,以便能够创建统一行为的窗口。对话框控件(按钮,列表框等)是一个很好的例子 - 它们都共享一个类。这意味着 - 他们共享一个窗口过程,这意味着 - 他们共享绘画逻辑,输入反应,自定义消息,通知等。

在应用程序级别,当您拥有多个同一类窗口的最典型情况是多文档界面中的文档。有时人们会引入特定于应用的控件。所以区别就是它的目的。