怎样在CDC中垂直显示一个字符串,该怎么处理
怎样在CDC中垂直显示一个字符串
如题所述,谢谢了
------解决方案--------------------
CString str = "新年快乐!";
CRect r(10,10,25,100);
pDC->DrawText(str,&r,DT_EDITCONTROL | DT_WORDBREAK | DT_CENTER);
------解决方案--------------------
http://www.codeproject.com/gdi/VertDraw.asp
------解决方案--------------------
需要先创建一个垂直字体,然后选入CDC就可以了。
------解决方案--------------------
要不要字体横卧?如果要,先写入兼容DC再转90度;或找横卧字体,打开记事本,改字体,凡是以“@”开头的都是;
竖起来排还是有办法的。
比如 CString str = "我爱你";
要从POINT (100,100) 竖着写。
先拆分;
CString str1, str2, str3;
str1 = str.Left(1);
str2= str.Mid(1,1);
str3 = str.Right(1);
TextOut(100, 100 + dx, str1, 1); // dx是字的高度,这个是可以取得的,只是比较烦,多试几次,定为一个常量
TextOut(100, 100 + dx*2,str2, 1);
TextOut(100, 100 + dx*3,str3, 1);
如题所述,谢谢了
------解决方案--------------------
CString str = "新年快乐!";
CRect r(10,10,25,100);
pDC->DrawText(str,&r,DT_EDITCONTROL | DT_WORDBREAK | DT_CENTER);
------解决方案--------------------
http://www.codeproject.com/gdi/VertDraw.asp
------解决方案--------------------
需要先创建一个垂直字体,然后选入CDC就可以了。
------解决方案--------------------
要不要字体横卧?如果要,先写入兼容DC再转90度;或找横卧字体,打开记事本,改字体,凡是以“@”开头的都是;
竖起来排还是有办法的。
比如 CString str = "我爱你";
要从POINT (100,100) 竖着写。
先拆分;
CString str1, str2, str3;
str1 = str.Left(1);
str2= str.Mid(1,1);
str3 = str.Right(1);
TextOut(100, 100 + dx, str1, 1); // dx是字的高度,这个是可以取得的,只是比较烦,多试几次,定为一个常量
TextOut(100, 100 + dx*2,str2, 1);
TextOut(100, 100 + dx*3,str3, 1);