画笔

windows备用画笔(stock pen) BLACK_PEN  WHITE_PEN  NULL_PEN
static HPEN hPen;  //画笔句柄         WM_CREATE

hPen = GetStockObject (WHITE_PEN);  //获取备用画笔

hPen = CreatePen (iPenStyle, iWidth, crColor);  //创建画笔   
iPenStyle 的种类
PS_SOLID
PS_DASH
PS_DASHDOT
PS_DASHDOTDOT
PS_NULL
PS_INSIDEFRAME

逻辑画笔
LOGPEN logpen; //有三个字段 lopnStyle 画笔样式 lopnWidth(一个POINT结构,windows仅用x字段设置宽度,y被忽略)画笔宽度  lopnColor颜色(COLORREF)
hPen = CreatePenIndirect (&logpen);

选用画笔         WM_PAINT
SelectObject (HDC hdc, hPen);


删除画笔 WM_DESTROY
DeleteObject (hPen);

SelectObject (hdc, CreatePen (PS_DASH, 0, RGB (255,0,0)));  //函数会返回之前的画笔
所以删除可以用
DeleteObject (SelectObject (hdc, GetStockPen(WHITE_PEN)));

GetObject (hPen, sizeof (LOGPEN), (LPVOID) &logpen);  //获取句柄为hPen的画笔的属性,存于logpen中

GetCurrentObject (hdc, OBJ_PEN); //获取当前被选入的画笔句柄

关于点式画笔和虚线画笔的空隙可以用函数
SetBkColor (hdc, crColor);     //改变windows填充空隙的颜色
GetBkColor (hdc);

SetBkMode (hdc, TRANSPRAENT);   //设置背景模式为透明,阻止windows填充空隙
posted @ 2014-02-07 12:32  闲云阁  阅读(246)  评论(0)    收藏  举报