笔刷 API

笔:用于绘制轮廓线,宽度为 1。

刷:用于填充区域,以及宽度超过 1 的线等。

函数 意义
SelectObject(dc,object) 给场景设置新的画笔/刷
DeleteObject(object) 删除建立的画笔/刷
CreateSolidBrush(color) 返回单色画刷
CreateBrushIndirect(logbrush) 返回自定义画刷
CreatePen(nPenStyle,width,color) 返回自定义画笔
CreatePenIndirect(logpen) 返回自定义画笔
ExtCreatePen(...) 返回自定义画笔/刷
GetStockObject(fnObject) 返回预定义画笔/刷/字体/
CreateHatchBrush(hatchStyle,color) 返回阴影画刷
CreatePatternBrush(bitmap) 返回位图画刷,最大 8X8

LOGBRUSH 结构

Public Type LOGBRUSH
    lbStyle As Long
    lbColor As Long
    lbHatch As Long
End Type
属性 意义
lbStyle 风格
lbColor 颜色
lbHatch 阴影

lbStyle 画刷风格

常量 意义
Public Const BS_SOLID = 0 单色
Public Const BS_NULL = 1 不进行填充
Public Const BS_HATCHED = 2 使用 lbHatch 模式
Public Const BS_PATTERN = 3
Public Const BS_HOLLOW = BS_NULL 不进行填充
Public Const BS_DIBPATTERN = 5
Public Const BS_DIBPATTERNPT = 6

lbHatch 画刷阴影

常量 意义
Public Const HS_HORIZONTAL = 0 '水平线
Public Const HS_VERTICAL = 1 '垂直线
Public Const HS_FDIAGONAL = 2 '135 度斜线
Public Const HS_BDIAGONAL = 3 '45 度斜线
Public Const HS_CROSS = 4 '纵横交叉线
Public Const HS_DIAGCROSS = 5 '45 度交叉线

logpen 结构

Public Type LOGPEN
    lopnStyle As Long
    lopnWidth As POINTAPI
    lopnColor As Long
End Type
属性 意义
lopnStyle 风格
lopnWidth 宽度
lopnColor 颜色

nPenStyle 画笔风格

常量 意义
Public Const PS_SOLID = 0 '实线
Public Const PS_DASH = 1 '虚线
Public Const PS_DOT = 2 '点线
Public Const PS_DASHDOT = 3 '点划线
Public Const PS_DASHDOTDOT = 4 '双点划线
Public Const PS_NULL = 5 '无(不画线)
Public Const PS_INSIDEFRAME = 6 '实线

ExtCreatePen 函数

ExtCreatePen(dwPenStyle,width,logbrush,StyleCount,lpStyle)
参数 意义
dwPenStyle 画笔/刷类型复合属性
width 画笔宽度
logbrush 画刷风格
StyleCount 自定义线型数组大小,非自定义线型时为 0
lpStyle 自定义线型数组地址,非自定义线型时为 NULL

依次排列每段划线长度、空白长度,一般为偶数

dwPenStyle 参数

复合参数,包含四种属性(后两种适用于 Geometric 类型)。

画笔类型 常量 意义
Public Const PS_GEOMETRIC = &H10000 'Geometric 比例类
Public Const PS_COSMETIC = &H0 'Cosmetic 普通类
线型 常量 意义
Public Const PS_USERSTYLE = 7 '自定义线型
Public Const PS_ALTERNATE = 8 '用于 Cosmetic
参见 nPenStyle '线型
端点 常量 意义
Public Const PS_ENDCAP_ROUND = &H0 圆形端点(附加半圆)
Public Const PS_ENDCAP_SQUARE = &H100 方形端点(附加 1/2 线宽)
Public Const PS_ENDCAP_FLAT = &H200 无端点
连接 常量 意义
Public Const PS_JOIN_ROUND = &H0
Public Const PS_JOIN_BEVEL = &H1000
Public Const PS_JOIN_MITER = &H2000

fnObject 类型

Value Meaning
BLACK_BRUSH 黑色画刷
DKGRAY_BRUSH 暗灰画刷
DC_BRUSH Windows 98, Windows NT 5.0 and later: Solid color brush. The default color is white. The color can be changed by using the SetDCBrushColor function. For more information, see the following Remarks section.
GRAY_BRUSH 灰画刷
HOLLOW_BRUSH 不进行填充
LTGRAY_BRUSH 淡面画刷
NULL_BRUSH 不进行填充
WHITE_BRUSH 白画刷
BLACK_PEN 黑画笔
DC_PEN Windows 98, Windows NT 5.0 and later: Solid pen color. The default color is white. The color can be changed by using the SetDCPenColor function. For more information, see the following Remarks section.
WHITE_PEN 白画笔
ANSI_FIXED_FONT Windows fixed-pitch (monospace) system font.
ANSI_VAR_FONT Windows variable-pitch (proportional space) system font.
DEVICE_DEFAULT_FONT Windows NT: Device-dependent font.
DEFAULT_GUI_FONT Default font for user interface objects such as menus and dialog boxes.
OEM_FIXED_FONT Original equipment manufacturer (OEM) dependent fixed-pitch (monospace) font.
SYSTEM_FONT 系统字体(菜单、对话框、文本用)
SYSTEM_FIXED_FONT Fixed-pitch (monospace) system font. This stock object is provided only for compatibility with 16-bit Windows versions earlier than 3.0.
DEFAULT_PALETTE Default palette. This palette consists of the static colors in the system palette.