窗口
每个GUI应用程序都有一个窗口,它由多个部分组成。 包括标题栏,[a1] 菜单栏,客户区[a2] ,状态栏等
对话框是窗口,还是控件?
窗口类
每个窗口都对应一个窗口类。 窗口类定义了菜单项,背景,图标,鼠标指针样式,和窗口消息处理函数。 每个窗口类都对应一个消息处理函数,即每个窗口都有自己的消息处理函数。
应用程序在创建窗口前,需向系统注册窗口类,或是用系统已定义好的窗口类。
消息和消息处理函数
- 消息的分类: COMMAND 和 WM_ ,还有一类是通知型的消息,以及控件消息?
控件
控件,实际是一种特殊的窗口,它是一个子窗口。
Windows控件分为user controls (用户控件) 和 common controls(通用控件)
Windows控件被放置在其他动态库中。如:ComCtl32.dll
应用程序可以直接使用这些控件而不需要重新定义。
控件分很多种,常用的包括:
文本框(Edit, RichEdit),
按钮(Button,Check Boxes,Group Boxes,Push Buttons,Radio Buttons),
下拉菜单(comboBox),
列表框(List Box),
分组列表(List View),
分页(Pager),
进度条(Process Bar),
属性页(Property Sheet),
工作条(ToolBar) ,
树(Tree View)
控件有特定的窗口样式,现实设置,和消息处理过程。 使用控件时不需要再做消息处理。
资源
资源是应用程序在运行中可能会使用到的一些数据,如图标,位图,菜单等。
在程序设计时,开发人员可以在资源脚本(.rc)中配置资源,在程序构建时,资源编译器会将资源编译为资源文件(.res) ,然后由链接器将资源链接到可执行文件中。程序在运行中便可以使用这些资源。
GDI
Device Context(DC)
DC是一个结构,它定义了图形对象和图形对象的属性,图形模式。
图形对象包括画笔,画刷,字体,位图,调色板(Palette),区域(矩形)等/
这些对象都可以使用SelectObject()函数将它们选入DC中。
重载SelectObject()方法,以便接受各种类型对象的指针。
绘图模式(Graphic Mode)
Windows支持5种图形模式,允许应用程序指定: 1. 颜色如何合成。 2. 输出在哪里出现
- 输出如何缩放 等
模式被存储在Device Context(DC)中.
5种模式分别是:
- Background[a3]
- Drawing[a4]
- Mapping[a5]
- Polygon-fill[a6]
- Stretching[a7]
创建对话框
方法:
- 通过资源来创建对话框,可以使用 CreateDialog , CreateDialogParam , DialogBox , DialogBoxParam 等API宏或函数。
- 不依赖资源,直接创建对话框,可以使用:
CreateDialogIndirect , CreateDialogIndrectParam , DialogBoxIndirect,
DialogBoxIndirectParam 等API宏和函数直接创建对话框。
对话框消息处理函数:
在创建对话框时,需要指明对话框消息处理函数。
如果一个消息能有对话框的消息处理函数处理,那么需返回 TRUE
[a1]包括应用程序图标,窗口标题,最大化,最小化,关闭按钮。
[a2]客户区用于放置窗口的功能空间,现实内容等。
[a3]定义存在的窗口或位图和文本操作的屏幕颜色如何合成
[a4]与Background相对应,Drawing是定义前景色。
[a5]定义输出的图形如何从逻辑空间映射到窗口,屏幕,或打印纸
[a6]定义画刷模式,如何填充复杂区域的内部
[a7]定义位图颜色如何被合成
Windows基础概念