第二章WINDOWS 应用程序框架 创建窗口只需调用CreateWindow函数即可, 但实际上并不这么简单。但实际上并非真 得这么简单。虽然创建窗口的函数确实被命 名为CreateWindow,但您将发现 CreateWindowi的第一个参数就是所谓的 “窗口类名称”,并且该窗口类连接所谓的 “窗口过程”。在我们调用CreateWindow 之前,有一点背景知识会对您大有帮助
第二章 WINDOWS 应用程序框架 创建窗口只需调用CreateWindow 函数即可, 但实际上并不这么简单。 但实际上并非真 得这么简单。虽然创建窗口的函数确实被命 名为CreateWindow, 但您将发现 CreateWindow的第一个参数就是所谓的 “窗口类名称”,并且该窗口类连接所谓的 “窗口过程”。在我们调用CreateWindow 之前,有一点背景知识会对您大有帮助
第一节 VINDOWS应用程 序的基本结构 进行Windows程序设计,实际上是在进行 一种面向对象的程序设计(OOP)。这一点在 Windows中使用得最多的对象身上表现最为明 显。 这种对象正是Windows.之所以命名 “Windows"的原因,它具有人格化的特征, 这 就是那个叫做“窗口”的对象
第一节 WINDOWS应用程 序的基本结构 ⚫ ⚫ 进行Windows程序设计,实际上是在进行 一种面向对象的程序设计(OOP)。这一点在 Windows中使用得最多的对象身上表现最为明 显。 ⚫ 这种对象正是Windows之所以命名 为 “Windows”的原因,它具有人格化的特征,这 就是那个叫做“窗口”的对象。 ⚫
一、总体结构 桌面上最明显的窗口就是应用程序窗口。这些窗口 含有显示程序名称的标题栏、菜单,甚至可能还有工具 栏和滚动条。另一类窗口是对话框,它可以有标题栏也 可以没有标题栏。 装饰对话框表面的还有各式各样的按钮、单选钮、 复选框、列表框、滚动条和文本输入区域。其中每一个 小的可视对象都是一个窗口。更确切地说,这些都称为 “子窗口”或“控件窗口”或“子窗口控件
一、总体结构 桌面上最明显的窗口就是应用程序窗口。这些窗口 含有显示程序名称的标题栏、菜单,甚至可能还有工具 栏和滚动条。另一类窗口是对话框,它可以有标题栏也 可以没有标题栏。 装饰对话框表面的还有各式各样的按钮、单选钮、 复选框、列表框、滚动条和文本输入区域。其中每一个 小的可视对象都是一个窗口。更确切地说,这些都称为 “子窗口”或“控件窗口”或“子窗口控件”
作为对象,用户会在屏幕上看到这些窗口, 并通过键盘和鼠标直接与它们进行交互操 作。更有趣的是,程序员的观点与用户的 观点极其类似。窗口以“消息”的形式接收 窗口的输入,窗口也用消息与其他窗口通 讯。对消息的理解将是学习如何编写 Windows程序必须逾越的障碍之一。 这有一个windows的消息示例:我们知道,大多数 的windows程序都有大小合适的应用程序窗口。也就 是说,您能够通过鼠标拖动窗口的边框来改变窗口 的大小。通常,程序将通过改变窗口中的内容来响 应这种大小的变化。是Windows.本身而不是应用程 序正在处理与用户重新调整窗口大小相关的全部代 码。由于应用程序能改变其显示的格式,所以它也 “知道”窗口大小改变了
作为对象,用户会在屏幕上看到这些窗口, 并通过键盘和鼠标直接与它们进行交互操 作。更有趣的是,程序员的观点与用户的 观点极其类似。窗口以“消息”的形式接收 窗口的输入,窗口也用消息与其他窗口通 讯。对消息的理解将是学习如何编写 Windows程序必须逾越的障碍之一。 这有一个windows的消息示例:我们知道,大多数 的windows程序都有大小合适的应用程序窗口。也就 是说,您能够通过鼠标拖动窗口的边框来改变窗口 的大小。通常,程序将通过改变窗口中的内容来响 应这种大小的变化。是Windows本身而不是应用程 序正在处理与用户重新调整窗口大小相关的全部代 码。由于应用程序能改变其显示的格式,所以它也 “知道”窗口大小改变了
应用程序是如何知道用户改变了窗口的大小的呢? 由于程序员习惯了常规的字符模式程序,操作系统 没有设置将此类消息通知给用户的机制。问题的关 键在于理解Vindows所使用的体系结构。当用户改 变窗口的大小时,Windows给程序发送一条消息指 出新窗口的大小。然后程序就可以调整窗口中的内 容,以反映大小的变化。“Windows给程序发送消息。”我们希望 读者不要对这句话视而不见。它到底表达了什么意思呢?我们在这 里讨论的是程序代码,而不是一个电子邮件系统。操作系统怎么给 程序发送消息呢?其实,所谓“Windows给程序发送消息”,是指 Windows调用程序中的一个函数,该函数的参数描述了这个特定消 息。这种位于Windows程序中的函数被称为“窗口过程”。 无疑,读者对程序调用操作系统的思路是很熟悉的。例如,程序 在打开磁盘文件时就要使用有关的系统调用。读者所不习惯的,可 能是操作系统调用程序,而这正是Windows面向对象体系结构的基 础
应用程序是如何知道用户改变了窗口的大小的呢? 由于程序员习惯了常规的字符模式程序,操作系统 没有设置将此类消息通知给用户的机制。问题的关 键在于理解Windows所使用的体系结构。当用户改 变窗口的大小时,Windows给程序发送一条消息指 出新窗口的大小。然后程序就可以调整窗口中的内 容,以反映大小的变化。 “Windows给程序发送消息。 ”我们希望 读者不要对这句话视而不见。它到底表达了什么意思呢?我们在这 里讨论的是程序代码,而不是一个电子邮件系统。操作系统怎么给 程序发送消息呢?其实,所谓“Windows给程序发送消息” ,是指 Windows调用程序中的一个函数,该函数的参数描述了这个特定消 息。这种位于Windows程序中的函数被称为“窗口过程” 。 无疑,读者对程序调用操作系统的思路是很熟悉的。例如,程序 在打开磁盘文件时就要使用有关的系统调用。读者所不习惯的,可 能是操作系统调用程序,而这正是Windows面向对象体系结构的基 础