|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一 核心知识点
* 当前画笔
每次绘画,除绘制点SetPixel函数外,其他绘制曲线函数都需要使用画笔,默认都是使用“当前画笔”,而“当前画笔”默认为BLACK_PEN
* Windows预设的画笔
通过GetStockObject(WHITE_PEN)可以直接调用Windows预设的画笔,有以下选择——
1 BLACK_PEN 黑色画笔
2 WHITE_PEN 白色画笔
3 NULL_PEN 透明画笔
4 DC_PEN 纯色画笔,使用该画笔需要提前调用SetDCPenColor来设置其颜色
* 选定画笔
获得画笔之后,还需要将通过SelectObject函数将该画笔选中,才能使用
每次只能选中一种画笔
该函数会返回之前的画笔,一般进行保留,并在绘制完成后将其复原
* 创建与删除画笔
使用CreatePen或CreatePenIndirect来创建一个自定义的画笔
使用DeleteObject来删除自己创建的画笔
* 获得当前画笔的信息
通过GetCurrentObject可以直接获得“当前画笔”的句柄
通过GetObject可以获得“当前画笔”的LOGPEN结构
二 新API函数 和 结构
* SetDCPenColor(hdc, RGB(255, 0, 0)) 和 SetDCBrushColor(hdc, RGB(255, 0, 0))
这两个函数设置当前环境中的 DC_PEN 或 DC_BRUSH 的颜色
配合GetStockObject使用可以设置和使用 DC_Pen 或 DC_BRUSH
* hOldPen = SelectObject(hdc, hPen)
该函数用于选择一个对象到当前环境中,同时返回之前的同类型对象
第一个参数: 当前环境句柄
第二个参数: 需要选中的类型的对象
第二个参数可以是画笔,画刷,字体等等
返回的类型必须和第二个参数的类型一致
利用该函数完成绘制操作后,一般再次调用该函数将第二个参数设置为之前的对象: SelectObject(hdc, hOldPen)
* CreatePen(PS_SOLID, 100, RGB(255, 0, 0))
该函数创建一个用户自定义的画笔
第一个参数:画笔的类型,可以选择的类型有:
1 PS_SOLID 实体画笔
2 PS_DASH 虚线
3 PS_DOT 点线
4 PS_DASHDOT 点划线
5 PS_DASHDOTDOT 点点划线
6 PS_NULL 透明画笔
7 PS_INSIDEFRAME 特定实线画笔:在绘制封闭曲线时将想内部拓宽画笔
第二个参数: 画笔的宽度
当第一个参数不是 PS_SOLID 或 PS_INSIDEFRAME时其值必须小于等于1
若该值为0,则默认宽度为1个单位
第三个参数: 画笔的颜色,通过RGB宏进行设定
* CreatePenIndirect(plgpen)
该函数同CreatePen,只是将画笔的属性都放在一个LOGPEN结构中
该函数的优势在于如果要生成多个画笔,可以先设置好各个画笔的结构成员,然后循环调用,从而省去反复书写CreatePen函数
* LOGPEN 结构
该结构的成员数目及含义同CreatePen的形参完全一致
* DeleteObject(hPen)
该函数删去一个类型对象,同时释放其占用的系统资源
该函数可以删去的类型包括画笔,画刷,字体等等
该函数一般用来删除用户自定义的类型对象,而不能使用该函数去删除系统预设的类型对象,如画笔WHITE_PEN
该函数一般搁置在WM_DESTORY消息处理代码中
* hPen = GetCurrentObject(hdc, OBJ_PEN)
该函数可以获得当前环境中的指定的类型对象的句柄
第一个参数: 当前环境句柄
第二个参数: 指定的类型对象,可以是以下几种——
1 OBJ_BITMAP 位图
2 OBJ_BRUSH 画刷
3 OBJ_COLORSPACE 色彩空间
4 OBJ_PONT 字体
5 OBJ_PAL 调色板
6 OBJ_PEN 画笔
* GetObject(hPen, cbBuffer, pvObject)
该函数获得指定类型对象的信息
第一个参数:指定的类型对象的句柄,可以是画笔,画刷,字体等等
第二个参数:指定将要写入缓冲区的字节数
第三个参数:指向缓冲区的指针,用于存放类型对象的信息
|
评分
-
查看全部评分
|