各位大侠,我想在cedit中输出 逆时针旋转270度的字符。用logfont.lfEscapement=2700;
设定了旋转270度,
可是字以右上角位圆心,旋转了270度。cedit里面什么也看不到了。
当旋转80度的时候,能看到字的一个 角
有什么方法可以解决么??
设定了旋转270度,
可是字以右上角位圆心,旋转了270度。cedit里面什么也看不到了。
当旋转80度的时候,能看到字的一个 角
有什么方法可以解决么??
解决方案 »
- CComboBox,添加一项同时又能显示选择该项并显示?
- access 使用到了m_pRs->movePrevious(),总出错
- VC6如何设置编辑框中字体的颜色?
- 如何编写子程序,去除车辆阴影?
- 求因数的和
- 调用microsoft语音包做语音合成,实现中英文混读.
- 框架窗口中能加命令按钮吗?
- 如何在DLL中输出类,如何在程序中调用DLL的类?
- VC中怎样调用OPENGL,让图像显示在对话框中
- 怎样做WH_JOURNALPLAYBACK和WH_JOURNALRECORD钩子?
- 高手请帮忙:DEBUG版编译连接通过,而RELEASE版编译过,连接不过?
- 为什么直接运行光盘中的VC程序经常出错!
只要用户使用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 ();
}
}
当旋转45度的时候能看到字的一半,cedit的显示区域不对,那个字的是从 右上角开始旋转的。这样就有一部份转到cedit外面了。。