好多人都觉得在​​VC​​中实现文字竖排是一件很难的事情,其实可以使用“躺”着的字体很方便的实现文字竖排。

Windows中有一些字体是“躺”着的,例如:@Fixedsys、@System、@宋体、@黑体等等,有很多,这些字体和不加@的字体的唯一区别就是用这些字体显示的文字是“躺”着的。如下图:


对这些“躺”着的字体进行270°的旋转就可以实现文字竖排了,效果如下:


以下代码可以产出竖排的宋体。



CFont   font;   
CFont *pOldFont;

font.CreateFont(18, 0, 2700, 2700, FW_NORMAL,
0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
DEFAULT_PITCH,"@宋体");
pOldFont=dc.SelectObject(&font)

dc.TextOut(50,50,"文字竖排");
dc.SelectObject(&pOldFont)
/* 何问起 hovertree.com */


 

大家可以试一下。