Gdiplus::Fontfont(sealTextFont, (REAL)m_sealInfo.m_sealTextSize, FontStyleBold, UnitPoint);
Graphics graphics(pDC->m_hDC);
//平移原点坐标系到指定的点
graphics.TranslateTransform((REAL)(m_sealInfo.m_sealRangeRect.right+m_sealInfo.m_sealRangeRect.left)/2,
(REAL)(m_sealInfo.m_sealRangeRect.bottom+m_sealInfo.m_sealRangeRect.top)/2);
WCHAR str;//图章信息
for(int index = 0; index < textLen; index++)
{
graphics.RotateTransform((REAL)(beginDegree+ degree*index));
str = m_sealInfo.m_sealText.GetAt(index);
graphics.DrawString(&str, 1,
&font,
PointF(0.0f,-((REAL)m_sealInfo.m_sealWidth/2- 1)),
&SolidBrush(Color(GetRValue(colorref),GetGValue(colorref), GetBValue(colorref)))
);
graphics.RotateTransform(-(REAL)(beginDegree+ degree*index));
}
//图章类型
int len =m_sealInfo.m_sealType.GetLength();
REAL XWidth =m_sealInfo.m_sealWidth*2*sqrt(10.0f)/7;
REAL incr = XWidth*3/(7*len);
REAL beginPos = -(XWidth*3.0f/14);
for(int index = 0; index < len; index++)
{
str = m_sealInfo.m_sealType.GetAt(index);
graphics.DrawString(&str, 1,&font,PointF((REAL)(beginPos+incr*index),((REAL)m_sealInfo.m_sealHeight*3/14)),&SolidBrush(Color(GetRValue(colorref),GetGValue(colorref), GetBValue(colorref))));
}
graphics.TranslateTransform(-(REAL)(m_sealInfo.m_sealRangeRect.right+m_sealInfo.m_sealRangeRect.left)/2,
-(REAL)(m_sealInfo.m_sealRangeRect.bottom+m_sealInfo.m_sealRangeRect.top)/2);
本文出自 “BaggerSky” 博客,谢绝转载!