奇谭怪剑

“奇谭怪剑”————奇谈怪见是也!你想说什么就说什么;你想知道什么就能知道什么;你想要什么就有什么;来吧朋友————天剑这儿应有尽有!..........*^-^*..........

881 成员697 主题2,175 回复0 张照片

如何显示旋转文本

天
天 剑
2000-05-18 19:29
如何显示旋转文本 只要用户使用TrueType或者GDI笔或字体就可以显示旋转文本(有些硬件设备也支持旋转光栅字体)。LOGFONT结构中的ifEscapement成员指定了文本行和x轴的角度,角度的单位是十分之一度而不是度,例如,ifEscapement为450表示字体旋转45度。为确保所有的字体沿坐标系统的同一方向旋转,一定要设置ifEscapement成员的CLIP_LH_ANGLES位,否则,有些字体可能反向旋转。下例使用了14点Arial字体每间隔15度画一个串。 void CSampleView:: OnDraw (CDC* pDC) { //Determine the size of the window. CRect rcClient GetClientRect (rcClient) //Create sample string. CString str (_T ("Wheeee...I am rotating!")) //Draw transparent, red text. pDC->SetBkMode (TRANSPARENT) pDC->SetTextColor (RGB (255,0,0)) CFont font //font object LOGFONT stFont //font definition //Set font attributes that will not change. memset (&stFont, 0, sizeof (LOGFONT)) stFont.ifheight=MulDiv (14, -pDC->GetDeviceCaps(LOGPIXELSY), 72) stFont.ifWeight=FW_NORMAL stFont.ifClipPrecision=LCIP_LH_ANGLES strcpy (stFont.lfFaceName, "Arial") //Draw text at 15degree intervals. for (int nAngle=0 nAngle<3600 nAngle+="150) { //Specify new angle. stFont.lfEscapement=nAngle //Create and select font into dc. font.CreateFontIndirect(&stfont) CFont* pOldFont=pDC ->SelectObject(&font) //Draw the text. pDC->SelectObject(pOldFont) font.DelectObjext() } }
1 / 1

登录后回复。