|
|
1
6
窗口类描述将用于该类的所有实例的属性。除了颜色、图标等,这些属性之一就是窗口过程。这是一个回调函数,负责处理来自系统的所有消息,并在必要时对它们进行处理。 虽然不相关,但概念类似于C++类——一段代码定义类的数据和功能,并且可能有很多类的实例。
作为一个非常粗略的例子,“button”类wndproc将
当一个窗口需要将一个操作传递给父级(例如单击)时,它会以“通知”或“命令”的形式发送消息。这些消息由子控件手动创建,并包含标识符和任何相关数据。 所有这些的好处只是通过创建按钮类的窗口(使用CreateWindow),我可以自动获得所有这些行为。 除了Windows提供的窗口外,我还可以创建自己的窗口,这些窗口可以在整个应用程序中恢复。您必须为主窗口注册至少一个类(否则它将没有任何功能,因此不会非常有趣),但除此之外,这取决于您自己。 很可能应用程序只包含常规控件(按钮、列表视图、进度条),但有时您可能希望创建自定义类。这可能是为了封装特定的行为,也可能是因为您希望通过程序使用该控件的许多实例。 例如,如果应用程序的UI需要鼠标悬停时旋转的长颈鹿图像,我可以在WindowProcedure中编写代码,并将其注册为新类(“spinnygiraffe”)。我的应用程序的其余部分只创建了“spinnygiraffe”类的窗口,一切都正常工作。 |
|
|
2
1
怎么会这样? 子控件(这些也是Windows)向其父窗口发送消息,Windows(请注意Captilization,这是OS)知道该窗口的当前wndProc并调用它。 什么时候定义一个新类是一个好的编程实践? 每个窗口都必须有一个类,因此,除非窗口存在现有的类,否则必须定义一个新类。您可能需要为所有顶级窗口定义类,但不需要为任何控件(这些控件的内置类)或对话框定义类,因为Windows中的对话框API使用另一个内置类。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |