| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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) 
该函数获得指定类型对象的信息 
 
第一个参数:指定的类型对象的句柄,可以是画笔,画刷,字体等等 
第二个参数:指定将要写入缓冲区的字节数 
第三个参数:指向缓冲区的指针,用于存放类型对象的信息 
 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |