//
对绘制矩阵进行临时的变换来解决
Graphics m_pGp(hDC);
Matrix matrixOld, matrixNow;
m_pGp -> GetTransform( & matrixOld); m_pGp -> GetTransform( & matrixNow);
PointF gpPoint( 500 , - 500 ); // MM_HIMETRIC下文字的逻辑坐标位置
// 变换绘制矩阵
matrixNow.Translate(gpPoint.X, gpPoint.Y);
matrixNow.Scale( 1 , - 1 );
matrixNow.Rotate(lf.lfEscapement / 10 );
matrixNow.Translate( - gpPoint.X, - gpPoint.Y);
m_pGp -> SetTransform( & matrixNow);
FontFamily fontFamily(L " 宋体 " );
Font font( & fontFamily, 600 , FontStyleRegular, UnitPixel);
SolidBrush solidBrush(Color( 255 , 255 , 0 , 0 ));
Status sresult = m_pGp -> DrawString(_T(文字还倒不倒), - 1 , & font, gpPoint, & solidBrush);
// 恢复全局矩阵
m_pGp -> SetTransform( & matrixOld);
Graphics m_pGp(hDC);
Matrix matrixOld, matrixNow;
m_pGp -> GetTransform( & matrixOld); m_pGp -> GetTransform( & matrixNow);
PointF gpPoint( 500 , - 500 ); // MM_HIMETRIC下文字的逻辑坐标位置
// 变换绘制矩阵
matrixNow.Translate(gpPoint.X, gpPoint.Y);
matrixNow.Scale( 1 , - 1 );
matrixNow.Rotate(lf.lfEscapement / 10 );
matrixNow.Translate( - gpPoint.X, - gpPoint.Y);
m_pGp -> SetTransform( & matrixNow);
FontFamily fontFamily(L " 宋体 " );
Font font( & fontFamily, 600 , FontStyleRegular, UnitPixel);
SolidBrush solidBrush(Color( 255 , 255 , 0 , 0 ));
Status sresult = m_pGp -> DrawString(_T(文字还倒不倒), - 1 , & font, gpPoint, & solidBrush);
// 恢复全局矩阵
m_pGp -> SetTransform( & matrixOld);