c++点滴

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

CreatePenIndirect函数

结构LOGPEN存储了逻辑画笔的三个参数,画笔样式、宽度、颜色。

typedef struct tagLOGPEN{
  UINT lopnStyle;     
//样式
  POINT lopnWidth;    //宽度
  COLORREF lopnColor; //颜色
}LOGPEN,*PLOGPEN;

 

LOGPEN logpen;
HPEN p;
HGDIOBJ hOld;
HDC hdc 
= ::GetDC(this->m_hWnd);
logpen.lopnWidth.x 
= 1;
logpen.lopnColor 
= RGB(255,0,0);
logpen.lopnStyle 
= PS_SOLID;
= CreatePenIndirect(&logpen);
hOld
=SelectObject(hdc,p);
MoveToEx(hdc,
0,10,NULL);
LineTo(hdc,
50,10);
SelectObject(hdc,hOld);
DeleteObject(p);
::ReleaseDC(
this->m_hWnd,hdc);

 

ExtCreatePen函数

      上面CreatePen和CreatePenIndirect(CreatePenIndirect也是调用的CreatePen函数)创建的画笔,当宽度大于一个象素时,画笔不能画真实形式的直线,例如虚线和点划线。绘制的直线画端是圆角的,这时这两个函数将不能满足需要了。这时就可用到ExtCreatePen函数。ExtCreaetPen可以创建几何画和装饰性画笔。

 

HPEN ExtCreatePen(DWORD dwPenStylek,
                  DWORD dwWidth,
                  CONST LOGBRUSH 
*lplb,
                  DWORD dwStyleCont,
                  CONST DWORD 
*lpStyle);

 

今天太累了,明天继续练

posted on 2009-01-31 21:12  Reunion  阅读(934)  评论(0编辑  收藏  举报