2024年3月31日发(作者:)

理论:

Windows 程序中,在写图形用户界面时需要调用大量的标准 Windows Gui 函数。

其实这对用户和程序员来说都有好处,对于用户,面对的是同一套标准的窗口,对这些窗

口的操作都是一样的,所以使用不同的应用程序时无须重新学习操作。对程序员来说,这

些 Gui 源代码都是经过了微软的严格测试,随时拿来就可以用的。当然至于具体地写程序

对于程序员来说还是有难度的。为了创建基于窗口的应用程序,必须严格遵守规范。作到

这一点并不难,只要用模块化或面向对象的编程方法即可。

下面我就列出在桌面显示一个窗口的几个步骤:

得到您应用程序的句柄(必需);

得到命令行参数(如果您想从命令行得到参数,可选);

注册窗口类(必需,除非您使用 Windows 预定义的窗口类,如 MessageBox 或 di

alog box;

产生窗口(必需);

在桌面显示窗口(必需,除非您不想立即显示它);

刷新窗口客户区;

进入无限的获取窗口消息的循环;

如果有消息到达,由负责该窗口的窗口回调函数处理;

如果用户关闭窗口,进行退出处理。

相对于单用户的 DOS 下的编程来说,Windows 下的程序框架结构是相当复杂的。

但是 Windows 和 DOS 在系统架构上是截然不同的。Windows 是一个多任务的操作系

统,故系统中同时有多个应用程序彼此协同运行。这就要求 Windows 程序员必须严格遵

守编程规范,并养成良好的编程风格。

内容:

下面是我们简单的窗口程序的源代码。在进入复杂的细节前,我将提纲挈领地指出几

点要点:

您应当把程序中要用到的所有常量和结构体的声明放到一个头文件中,并且在源程序

的开始处包含这个头文件。这么做将会节省您大量的时间,也免得一次又一次的敲键盘。

目前,最完善的头文件是 hutch 写的,您可以到 hutch 或我的网站下载。您也可以定义

您自己的常量和结构体,但最好把它们放到独立的头文件中

用 includelib 指令,包含您的程序要引用的库文件,譬如:若您的程序要调用 "Me

ssageBox", 您就应当在源文件中加入如下一行: includelib 这条语句告诉

MASM 您的程序将要用到一些引入库。如果您不止引用一个库,只要简单地加入 includ

elib 语句,不要担心链接器如何处理这么多的库,只要在链接时用链接开关 /LIBPATH

指明库所在的路径即可。