19,469
社区成员
发帖
与我相关
我的任务
分享
Graphics g(pdc->m_hDC);
g.SetSmoothingMode(SmoothingModeHighQuality);
Pen bpen ( Color( 255,0,0,255),1 );
Pen gpen( Color( 255,0,255,0),1 );
PointF pt[4];
pt[0] = PointF( 100,100 );
pt[1] = PointF( 100,150 );
pt[2] = PointF( 150,200 );
pt[3] = PointF( 200,120 );
for( INT i = 0; i< 4; i++ )
{
g.DrawEllipse( &pen,pt[i].X-2,pt[i].Y-2, REAL(4),REAL(4) );
}
GraphicsPath OP;
OP.AddCurve( pt, 4 );
Pen woPen( Color( 0, 0, 0, 0 ), 8 );
REAL dashValues[2] = { float(1),float(1) };
woPen.SetDashPattern( dashValues, 2);
OP.Widen( &woPen );
g.DrawPath(&bpen,&OP );
GraphicsPathIterator pathIterator( &OP );
INT subpathCount = pathIterator.GetSubpathCount( );
GraphicsPath minPath[50];
PathData ExDT[50];
BOOL ExClose = TRUE;
for( int k = 0; k< subpathCount; k++ )
{
pathIterator.NextSubpath( &minPath[k], &ExClose );
minPath[k].GetPathData( &ExDT[k] );
}
for( int j = 0; j< ExDT[4].Count; j++ )
{
g.DrawEllipse( &gpen,ExDT[4].Points[j].X-1,ExDT[4].Points[j].Y-1,REAL(2),REAL(2));
}
void MyLine(CPoint begin,CPoint end,COLOR color,int LineStyle)
{
Switch(LineStyle)
{
case 0: // +++++++
{
// 绘制+++++
SetPixel();// 打点函数,实现+++++效果
break;
}
case 1: // XXXXXX
{
// 绘制XXXXXX
SetPixel();// 打点函数,实现XXXXXX效果 .提供一个思路是:建立一个线型表数组,需要显示的点用1表示,不需要显示的点用0表示。通过与操作
// 来判断该位置是打点,还是不打点。
break;
}
......
default:
break;
}
}