自己的视窗
建立视窗很简单,只需呼叫CreateWindow函式即可。
好啦,虽然建立视窗的函式的确名为CreateWindow,而且您也能在/Platform SDK/User Interface
Services/Windowing/Windows/Window Reference/Window
Functions找到此文件,但您将发现CreateWindow的第一个参数就是所谓的「视窗类别名称」,并且该视窗类别连接所谓的「视窗讯息处理程式」。在我们呼叫CreateWindow之前,有一点背景知识会对您大有帮助。
总体结构
进行Windows程式设计,实际上是在进行一种物件导向的程式设计(OOP)。这一点在Windows中使用得最多的物件上表现最为明显。这种物件正是Windows之所以命名为「Windows」的原因,它具有人格化的特徵,甚至可能会在您的梦中出现,这就是那个叫做「视窗」的东西。
桌面上最明显的视窗就是应用程式视窗。这些视窗含有显示程式名称的标题列、功能表甚至可能还有工具列和卷动列。另一类视窗是对话方块,它可以有标题列也可以没有标题列。
装饰对话方块表面的还有各式各样的按键、单选按钮、核取方块、清单方块、卷动列和文字输入区域。其中每一个小的视觉物件都是一个视窗。更确切地说,这些都称为「子视窗」或「控制项视窗」或「子视窗控制项」。
作为物件,使用者会在萤幕上看到这些视窗,并通过键盘和滑鼠直接与它们进行交互操作。更有趣的是,程式写作者的观点与使用者的观点极其类似。视窗以「讯息」的形式接收视窗的输入,视窗也用讯息与其他视窗通讯。对讯息的理解将是学习如何写作Windows程式所必须越过的障碍之一。
这有一个Windows的讯息范例:我们知道,大多数的Windows程式都有大小合适的应用程式视窗。也就是说,您能够通过滑鼠拖动视窗的边框来改变视窗的大小。通常,程式将通过改变视窗中的内容来回应这种大小的变化。您可能会猜测(并且您也是正确的),是Windows本身而不是应用程式在处理与使用者重新调整视窗大小相关的全部杂乱程式。由於应用程式能改变其显示的样子,所以它也「知道」视窗大小改变了。
应用程式是如何知道使用者改变了视窗的大小的呢?由於程式写作者习惯了往常的文字模式程式,作业系统没有设置将此类讯息通知给使用者的机制。问题的关键在於理解Wind