我正在尝试使用MFC GDI编写一些垂直文本,当我尝试将其旋转一个角度(比如说30度)时,会以某种方式将写入的图像剪辑出来。任何人都可以建议我可能是什么问题。 CreateFont定义和要写入的文本如下:
m_SmallFontVert.CreateFont(14,0,300,300,FW_BOLD, FALSE, FALSE, 0, ANSI_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH | FF_ROMAN,
"Arial");
我的文字:
CRect HeightRect(450,850,800,1000);
HeightRect.MoveToXY(450,500);
CString HeightText = "HEIGHT";
pDC->DrawText(HeightText,HeightRect,DT_LEFT);
它给出了输出:
有关我可能出错的地方的任何建议吗?
答案 0 :(得分:3)
我使用这组代码来获取文本的垂直显示。
CFont verFont;
verFont.CreateFont(20,10,900,0,FALSE,FALSE,FALSE,0,ARABIC_CHARSET,OUT_TT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_ROMAN,_T("Tahoma"))
CFont *OFont =(CFont *)pMemDC->SelectObject(&verFont);
pMemDC->TextOut(70,100,"VERTICAL");
然后我得到该文本的垂直显示。 可能这对你有帮助。
答案 1 :(得分:1)
在使用DrawText函数时,请确保将DT_NOCLIP指定为格式参数,以便它不会剪切输出。
参考: MSDN
这样的事情:
pDC->DrawText(HeightText,HeightRect,DT_LEFT | DT_NOCLIP);
希望这有帮助!