使用MFC绘制垂直文本

使用MFC绘制垂直文本,mfc,drawing,gdi,Mfc,Drawing,Gdi,我正在尝试使用MFC GDI编写一些垂直文本,当我尝试将其旋转一个角度(比如30度)时,写入的图像会以某种方式被剪掉。有人能告诉我可能有什么问题吗。CreateFont定义和要编写的文本如下所示: m_SmallFontVert.CreateFont(14,0,300,300,FW_BOLD, FALSE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,

我正在尝试使用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);
它给出了输出:


有没有关于我可能错在哪里的建议?

在使用DrawText函数时,请确保也将DT_NOCLIP指定为格式参数,以便它不会剪裁输出

参考:

大概是这样的:

pDC->DrawText(HeightText,HeightRect,DT_LEFT | DT_NOCLIP);

希望这有帮助

使用DrawText函数时,请确保也将DT_NOCLIP指定为格式参数,以便它不会剪裁输出

参考:

大概是这样的:

pDC->DrawText(HeightText,HeightRect,DT_LEFT | DT_NOCLIP);

希望这有帮助

我使用这组代码来获得文本的垂直显示

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");
然后我得到文本的垂直显示。
这可能对您有所帮助。

我使用这组代码来垂直显示我的文本

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");
然后我得到文本的垂直显示。 也许这对你有帮助