首页 » 软件开发 » VC|Windows应用程序开发特性和类向导(应用程序消息线程进程图形)

VC|Windows应用程序开发特性和类向导(应用程序消息线程进程图形)

少女玫瑰心 2024-07-24 06:07:48 0

扫一扫用手机浏览

文章目录 [+]

消息驱动机制

图形设备接口(GDI)

基于资源的程序设计

VC|Windows应用程序开发特性和类向导(应用程序消息线程进程图形) 软件开发
(图片来自网络侵删)

动态链接库

进程和线程

1 消息驱动机制

在Windows操作环境中,无论是系统产生的动作或是用户运行应用程序产生的动作,都称为事件(Events)产生的消息(Message)。
例如,在Windows 桌面(传统风格)上,双击应用程序的快捷图标,系统就会执行该应用程序。
在Windows的应用程序中,也是通过接收消息、分发消息、处理消息来和用户进行交互的。

这种消息驱动的机制是Windows编程的最大特点。
需要注意的是,许多Windows消息都经过了严格的定义,并且适用于所有的应用程序。
例如,当用户按下鼠标的左键时系统就会发送WM_LBUTTONDOWN消息,而当用户敲了一个字符键时系统就会发送WM_CHAR消息,若用户进行菜单选择或工具按钮单击等操作时,系统又会相应地发送WM_COMMAND消息给相应的窗口等等。

2 图形设备接口(GDI)

在传统的DOS环境中,想要在打印机上打印一幅图形是一件非常复杂的事情,因为用户必须根据打印机类型和指令规则向打印机输送数据。
而Windows则提供了一个抽象的接口,称为图形设备接口(Graphical Device Interface,简称GDI),使得用户直接利用系统的GDI函数就能方便实现输入或输出,而不必关心与系统相连的外部设备的类型。

3 基于资源的程序设计

Windows应用程序常常包含众多图形元素,例如光标、菜单、工具栏、位图、对话框等,在Windows环境下,每一个这样的元素都作为一种可以装入应用程序的资源来存放。
这些资源就像C++程序中的常量一样,可以被编辑、修改,也可以被其他应用程序所共享。
Visual C++ 6.0中就提供这样的编辑器,可“所见即所得”地对这些不同类型的资源进行设计、编辑等。

4 动态链接库

动态链接库提供了一些特定结构的函数,能被应用程序在运行过程中装入和连接,且多个程序可以共享同一个动态链接库,这样就可以大大节省内存和磁盘空间。
从编程角度来说,动态链接库可以提高程序模块的灵活性,因为它本身是可以单独设计、编译和调试的。

Windows提供了应用程序可利用的丰富的函数调用,大多数用于实现其用户界面和在显示器上显示的文本和图形,都是通过动态链接库来实现的。
这些动态链接库是一些具有.DLL扩展名或者有时是.EXE扩展名的文件。

在Windows操作系统中,最主要的DLL有KERNEL32.DLL、GDI32.DLL和USER32.DLL三个模块。
其中,KERNEL32用来处理存储器低层功能、任务和资源管理等Windows核心服务; GDI32用来提供图形设备接口,管理用户界面和图形绘制,包括Windows元文件、位图、设备描述表和字体等;而USER32负责窗口的管理,包括消息、菜单、光标、计时器以及其它与控制窗口显示相关的一些功能。

5 进程和线程

在32位Windows多任务操作系统中,采用了进程和线程的管理模式。
进程是装入内存中正在执行的应用程序。
进程包括私有的虚拟地址空间、代码、数据及其它操作系统资源,如文件、管道以及对该进程可见的同步对象等。
进程包括了一个或多个在进程上下文内运行的线程。
线程是操作系统分配CPU时间的基本实体。
线程可以执行应用程序代码的任何部分,包括当前正在被其它线程执行的那些部分。
同一进程的所有线程共享同样的虚拟地址空间、全局变量和操作系统资源。
在一个应用程序中,可以包括一个或多个进程,每个进程由一个或多个线程构成。

VC中的ClassWizard对话框包含了5个标签页面,它们各自含义如下:

5.1 Message Maps(消息映射):用来添加、删除和编程处理消息的成员函数。

5.2 Member Variables(成员变量):添加或删除与控件相关联的成员变量(或称数据成员),以便与控件进行数据交换。
这些控件所在的类一般是从CDialog、CPropertyPage、CRecordView或CDaoRecordView中派生的类。

5.3 Automation(自动化):为支持Automation的类(如ActiveX控件类)添加属性和方法。

5.4 ActiveX Events(ActiveX事件):为ActiveX控件类添加触发事件的支持。

5.5 Class Info(类信息):有关项目中类的其他信息。

一般来说,MFC ClassWizard对话框最前两项是用户最关心的,也是最经常使用的,因为几乎所有的代码编写都要利用这两个标签项。
由于Member Variables功能以后还会详细讨论,因此这里仅讨论Message Maps(消息映射)与类的添加和删除方法。

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读5 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0