GDI 图形子系统
来实现的。通过使用
、打印
机等等,因为
GDI 为我们作了很多幕后工作。
不幸的是,GDI 在有些时候不能满足你性能上的要求,特别是
是很高的,同时对于速度的要求也是很苛刻的,这就是
DrectX 出现的原因。我们首先来学
习一下
GDI,因为即使你要用 DirectX,一些 GDI 知识也是必备的。
矩形和点:
在我们介绍 GDI 对象之前,我们先来看看两个非常有用的结构---点和矩形---以及作用于
他们上的功能函数。矩形在
DirectX 中也是经常用的,在以后的学习过程中你将会发现这
一点。
我们首先来看这两种结构的定义:
typedef struct tagPOINT {
LONG x;
LONG y;
} POINT, *PPOINT;
typedef struct _RECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT, *PRECT;
矩形是由四个点来描述的:(左,上),(右,上),(左,下),(右,下)。在这里
需要注意的是矩形的右和下两条边时不属于矩形的。
用于操作矩形和点的函数:
我把这些函数分为三类:第一类是用于创建或者赋值的,第二类是用于操作的,第三类
是用于测试的。
函数名称 类型 作用
SetRect 创建赋值 用于设置 RECT 的成员变量
SetRectEmpty 同上 用于将 RECT 的所有成员置 0 的
CopyRect 同上 用于将一个矩形的成员值赋给另外一个矩形的
IntersectRect 操作 用于找到两个矩形的交集
UnionRect 同上 用于创建同时包含两个矩形的最小矩形
OffsetRect 同上 用于移动一个矩形
EqualRect 测试 测试两个矩形的成员是否相等
IsRectEmpty 同上 测试一个矩形的成员是否都为 0
PtInRect 同上 测试一个点是否位于一个矩形之内
关于这些函数的具体定义请大家参阅 MSDN.
窗口点滴
:
我们都很清楚,一个窗口所包含的不只是我们能够绘画的区域.根据用处的不同,一个窗口
包含最大化
,最小化按钮,标题栏,一个关闭按钮,一个系统菜单.滚动条等等.所包含的元素取
决于你所创建的窗口样式
.不过这些都不用我们担心,系统会为我们很好的绘制他们,我们所