1、对话框的运作

Windows 对话框依其与父窗口的关系,分为两类:

<1>「令其父窗口除能,直到对话框结束」,这种称为modal 对话框

<2> 父窗口与对话框共同运行」,这种称为modeless 对话框

比较常用的是modal 对话框。为了做出一个对话框,程序员必须准备两样东西

<1>对话框模板(dialog template。这是在RC 文件中定义的一个对话框外貌,以各种方式决定对话框的大小、字形、内部有哪些控制组件、各在什么位置...等等。

<2>对话框函数(dialog procedure。其类型非常类似窗口函数,但是它通常只处理WM_INITDIALOG WM_COMMAND 两个消息。对话框中的各个控制组件也都是小小窗口,各有自己的窗口函数,它们以消息与其管理者(父窗口,也就是对话框)沟通。而所有的控制组件传来的消息都是WM_COMMAND,再由其参数分辨哪一种控制组件以及哪一种通告(notification

Modal 对话框的激活与结束,靠的是DialogBox EndDialog 两个API 函数】

 

 

 

对话框的诞生、运作与结束

2、模块定义文件<.DEF>

Windows 程序需要一个模块定义文件,将模块名称、程序节区和资料节区的内存特性、模块堆积(heap)大小、堆栈(stack)大小、所有callback 函数名称...等等登记下来。VC++中现在已经不再需要模块定义文件】

 

3、资源描述档<.RC>

RC 文件是一个以文字描述资源的地方。常用的资源有九项之多,分别是ICONCURSORBITMAPFONTDIALOGMENUACCELERATORSTRINGVERSIONINFO。还可能有新的资源不断加入。这些文字描述需经过RC 编译器,才产生可使用的二进制代码。

 

4Windows 程序的生与死

通过以上的介绍已经了解Windows 程序的架构以及它与Windows 系统之间的关系Windows 消息种类以及发生时机的透彻了解,正是程序设计的关键。下面以窗口的诞生和死亡,说明消息的发生与传递,以及应用程序的兴起与结束。

 

窗口的生命周期

 

5为什么结束一个程序复杂如斯?因为操作系统与应用程序职司不同,二者是互相合作的关系,所以必需各做各的份内事,并互以消息通知对方。如果不依据这个游戏规则,可能就会有麻烦产生。

 

[今天稍微有些头疼,偷下懒,少看一点儿]

Posted on 2008-08-09 17:41  leivo  阅读(333)  评论(0编辑  收藏  举报