SetWorldTransform - 函数功能
函数功能:该函数为指定的设备环境设置全局空间和页面空间之间的二维的线性转变,此转换可用于比例缩放、旋转、剪切或翻译图形的输出。
函数原型:BOOL SetWorldTransform(HDC hdc, CONST XFORM *lpXform);
hdc:指向设备环境的句柄。
lpxform:指向XFORM结构的指针,此结构含有转换数据。
返回值:如果函数调用成功,返回值为非零值,否则为零。
Windows NT:若想获得更多错误信息,请调用GetLastError函数。
备注:对任何全局空间中的坐标点(X、Y),页面空间中的转换坐标点(X、Y)以下式来决定。
X'=X*eM11+y*eM21+eDx, Y'+X*eM12+y*eM22+eDy
转换矩阵为下列矩阵:
|eM11 eM120|
|eM21 eM220|
|eDx eDy | 映射方式(由当前窗口和视口原点定义的)用于定义单位和比例。全局转换常用于以不依靠设备的方式来缩放或旋转逻辑图像。缺省全局转换是偏移为零的等同矩阵。除非先调用SetGraphicsMode函数将给定设备环境的图形模式设置为GM_ADVANCED,否则SetworldTranform函数调用将失败,同样,也不可能重新把设备环境的图形方式设置成缺省的GM_COMPATIBLE方式,除非全局转已经通过调用 SetWorldtransform或ModifyworldTransform函数首先重新设置缺省的等同转换。 速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:wingdi.h;库文件:gdi32.lib。
对于文字就只需要在字体中设置
CFont myFont; //创建字体对象
CFont *pOldFont = NULL;
dc.SetBkMode(TRANSPARENT);
dc.Rectangle(CRect(0,0,100,500));
myFont.CreateFont( 56,//字体高度(旋转后的字体宽度)=56
20, //字体宽度(旋转后的字体高度)=20
-2700, //字体显示角度=270°
0, //nOrientation=0
10, //字体磅数=10
FALSE, //非斜体
FALSE, //无下划线
FALSE, //无删除线
DEFAULT_CHARSET, //使用缺省字符集
OUT_DEFAULT_PRECIS, //缺省输出精度
CLIP_DEFAULT_PRECIS,//缺省裁减精度
DEFAULT_QUALITY, //nQuality=缺省值
DEFAULT_PITCH, //nPitchAndFamily=缺省值
"@华文行楷"); //字体名=@system
pOldFont=dc.SelectObject(&myFont);//选入设备描述表
dc.DrawText("中华人民共和国",CRect(0,0,100,500),DT_WORDBREAK|DT_RIGHT);
myFont.DeleteObject();