画刷画笔
有两种类型的画刷:逻辑画刷和物理画刷。逻辑画刷是应用程序用于绘制形状的理想位图的说明。
物理画刷是设备驱动程序根据应用程序的逻辑画刷定义创建的实际位图。 当应用程序调用创建画刷的函数之一时,它将检索标识逻辑画刷的句柄。 当应用程序将此句柄传递给 选择对象 函数时,相应显示器或打印机的设备驱动程序将创建物理画刷。 当应用程序调用绘图函数来绘制形状时,系统会在绘制操作开始时放置画刷, 并将画刷位图中的像素映射到 窗口原点(窗口左上角)的工作区。 系统映射的像素的坐标称为 画刷原点。 默认画刷原点位于画刷位图的左上角,坐标 (0,0) 。 然后,系统跨工作区复制画刷,形成与位图一样高的图案。 复制操作将继续逐行执行,直到填充整个工作区。 但是,画刷图案仅在指定形状的边界内可见。 在某些情况下,不应使用默认画刷原点。 例如,应用程序可能需要使用相同的画刷绘制其父窗口和子窗口的背景,并将子窗口的背景与父窗口的背景混合在一起。 为此,应用程序应通过调用 设置原点 函数并将原点移动到所需的像素数来重置画刷原点。 下图显示了使用应用程序定义的画笔填充的五角星。 此图显示了画笔的缩放图像,以及在绘制操作开始时将其映射到的位置。




中文名称 | 英文名称 | 示例 | 作用 |
黑调色板 | BLACKNESS | $00000042 | 将所有输出转换为二进制零。 |
白调色板 | WHITENESS | $00FF0062 | 将所有输出转换为二进制输出。 |
反转图形 | DSTINVERT | $00550009 | 反转目标位图。 |
填色复制 | PATCOPY | $00F00021 | 将当前在目标设备中选择的画笔复制到目标位图中。 |
混色复制 | PATINVERT | $005A0049 | 使用布尔 XOR 运算符将目标位图与模式组合在一起。 |
Microsoft 图像颜色管理 (ICM) 可确保在任何设备上尽可能接近其原始意图呈现彩色图像、 图形或文本对象,尽管设备之间的成像技术和颜色功能存在差异。 无论是在彩色扫描仪上扫描图像或其他图形、通过 Internet 下载图像、在屏幕上查看或编辑它, 还是将其输出到纸张、胶片或其他媒体上,ICM 2.0 都可以帮助你保持颜色一致和准确。
有两种类型的笔:整形笔和几何笔。 整容笔用于需要固定宽度线条和快速绘制线条的应用程序。 例如,CAD 应用程序使用修饰笔生成隐藏的、部分、中心和尺寸线的宽度介于 0.015 到 0.022 英寸之间,而不考虑比例系数。 几何笔用于需要可缩放线条、具有独特端部或联接样式的线条以及比单个像素宽的线条的应用程序。 例如,电子表格应用程序使用几何笔将条形图中的每个条形图定义为宽线。 整容笔的尺寸以设备单位指定。 因此,使用整形笔绘制的线条始终具有固定宽度。 使用整形笔绘制的线条通常比使用几何笔绘制的线条快 3 到 10 倍。 整容笔有三个属性:宽度、样式和颜色。若要创建整容笔,请使用 创建画笔 新建画笔 或 扩展画笔 函数。 若要检索系统管理的三支常用整容笔之一,请使用 固有对象 函数。 (创建笔或获取其中一支常用笔) 的句柄后,使用 选择对象 函数将笔选入应用程序的设备上下文 (DC) 。 从此,应用程序将使用此笔在其工作区中的任何线条绘制操作。 几何笔的尺寸以逻辑单元指定。 因此,使用几何笔绘制的线条可以缩放,也就是说,它们可能看起来更宽或更窄,具体取决于当前世界转换。 除了与整容笔共享的三个属性 (宽度、样式和颜色) 外, 几何笔还具有以下四个属性:图案、可选阴影、端部样式和联接样式。 有七个笔属性定义笔的类型及其特征:宽度、样式、颜色、图案、阴影、结束样式和联接样式。 整容笔和几何笔都具有宽度、样式和颜色属性。 只有几何笔具有图案、阴影、结束样式和联接样式属性。 图案和可选的阴影属性通常与画笔相关联,但也可用于几何笔。
中文名称 | 英文名称 | 示例 | 作用 |
新建笔刷 | CreateBrushIndirect | 笔刷=新建笔刷(笔刷类) | 创建一个具有指定笔刷类结构样式,颜色和模式的逻辑画笔。 |
内建空刷 | CreateDIBPatternBrush | 笔刷=内建空刷(位图信息,格式) | 创建一个与设备无关的位图(DIB)的模式逻辑画刷。随后可以将刷子选择到与支持光栅操作的设备。格式:0=RGB,1=索引 |
内建画刷 | CreateDIBPatternBrushPt | 笔刷=内建画刷(位图信息,格式) | 创建一个与设备无关的位图(DIB)的模式逻辑画刷。格式:0=RGB,1=索引 |
图案笔刷 | CreateHatchBrush | 画刷=图案笔刷(样式,颜色) | 创建一个具有指定阴影图案和颜色的逻辑画笔。 |
内建笔刷 | CreatePatternBrush | 画刷=内建笔刷(内图) | 使用指定的位图模式创建逻辑画笔。位图可以是"内建位图"创建,也可以是与设备相关的位图。 |
创建画刷 | CreateSolidBrush | 画刷=创建画刷(颜色) | 创建一个具有指定纯色的实心逻辑画笔。用来绘制填充形状内部的位图。 |
笔刷原点 | GetBrushOrgEx | 笔刷原点(设备,坐标类) | 获取指定设备的当前画笔原点。 |
设置原点 | SetBrushOrgEx | 设置原点(设备,左,上,旧坐标) | 设置指定设备的当前画笔原点。 |
画矩形 | PatBlt | 画矩形(设备,左,上,宽,高,光栅) | 使用当前画笔来绘制给定的矩形。通过使用给定的光栅操作来组合画笔颜色和表面颜色。 |
创建画笔 | CreatePen | 画笔=创建画笔(样式,笔宽,颜色) | 创建一个具有指定样式,宽度和颜色的逻辑笔。用于在设备上绘制线条和曲线。 |
新建画笔 | CreatePenIndirect | 画笔=新建画笔(画笔类) | 创建一个逻辑的化妆笔,它具有在画笔类结构中指定的样式,宽度和颜色。 |
扩展画笔 | ExtCreatePen | 扩展画笔(样式,笔宽,笔刷类,长度,样式数组) | 创建一个具有指定样式,宽度和画笔属性的逻辑化妆或几何笔。样式是画笔样式、类型、端帽和联接的组合 |
阴影图案样式
英文名称 | 数值 | 作用解释 |
HS_HORIZONTAL | 0 | 水平阴影 |
HS_VERTICAL | 1 | 垂直阴影 |
HS_FDIAGONAL | 2 | 从左到右阴影下 45 度 |
HS_BDIAGONAL | 3 | 从左到右阴影向上 45 度 |
HS_CROSS | 4 | 横向缩放与纵向阴影线 |
HS_DIAGCROSS | 5 | 45 度交叉截断 |
画笔样式
英文名称 | 数值 | 作用解释 |
PS_SOLID | 0 | 触控笔是实心的。 |
PS_DASH | 1 | 触控笔虚线。 仅当笔宽度为 1 或更少(以设备单位为单位)时,此样式才有效。 |
PS_DOT | 2 | 笔被点点。 仅当笔宽度为 1 或更少(以设备单位为单位)时,此样式才有效。 |
PS_DASHDOT | 3 | 笔具有交替的短划线和点。 仅当笔宽度为 1 或更少(以设备单位为单位)时,此样式才有效。 |
PS_DASHDOTDOT | 4 | 笔具有交替的短划线和双点。 仅当笔宽度为 1 或更少(以设备单位为单位)时,此样式才有效。 |
PS_NULL | 5 | 笔不可见。 |
PS_INSIDEFRAME | 6 | 触控笔是实心的。在采用边框的绘图中图形的尺寸会缩小,使其完全适合边界矩形,同时考虑笔的宽度。 这仅适用于几何笔 |
PS_USERSTYLE | 7 | 笔使用用户提供的样式数组。 |
PS_ALTERNATE | 8 | 笔设置其他像素。(此样式仅适用于整容笔。) |
画笔类型
英文名称 | 数值 | 作用解释 |
PS_COSMETIC | 0 | 笔是整容的。 |
PS_GEOMETRIC | 0x10000 | 笔是几何的。 |
画笔端帽
英文名称 | 数值 | 作用解释 |
PS_ENDCAP_ROUND | 0 | 末端是圆的。 |
PS_ENDCAP_SQUARE | 0x100 | 末端是正方的。 |
PS_ENDCAP_FLAT | 0x200 | 末端是平的。 |
画笔联接
英文名称 | 数值 | 作用解释 |
PS_JOIN_ROUND | 0 | 联接是圆的。 |
PS_JOIN_BEVEL | 0x1000 | 联接是斜切的。 |
PS_JOIN_MITER | 0x2000 | 当前限制内进行斜接。超出限制将进行斜角。 |
笔刷类
中文名字 | 英文名称 | 长度 | 作用解释 |
笔刷类 | LOGBRUSH | 12 | 包含了笔刷数据的信息 |
笔刷类——成员表 | |||
---|---|---|---|
样式 | lbStyle | 整数 | 指定画笔样式。BS_SOLID等 |
颜色 | lbColor | 整数 | 指定要绘制画笔的颜色。中空笔刷和内存指定无效 |
填充 | lbHatch | 整数 | 指定一个填充样式。HS_CROSS等 |
画笔类
中文名字 | 英文名称 | 长度 | 作用解释 |
画笔类 | LOGPEN | 12 | 包含了画笔数据的信息 |
画笔类——成员表 | |||
---|---|---|---|
样式 | lopnStyle | 整数 | 指定画笔样式。PS_SOLID等 |
宽度 | lopnWidth.x | 整数 | 指定要绘制画笔的宽度 |
笔宽 | lopnWidth.y | 整数 | 未使用,设计的问题 |
颜色 | lopnColor | 整数 | 指定画笔的颜色 |
色位类
中文名字 | 英文名称 | 长度 | 作用解释 |
色位类 | COLORBYTES | 4 | 描述了由红色,绿色,蓝色和透明色的颜色位。 |
色度类——成员表 | |||
---|---|---|---|
蓝位 | BlueByte | 字节 | 绿色位值。 |
绿位 | GreenByte | 字节 | 绿色位值。 |
红位 | RedByte | 字节 | 红色位值。 |
透明 | AlphaByte | 字节 | 透明色位值 |