2012-01-10 3 views
0

Я пытаюсь написать некоторый вертикальный текст с использованием MFC GDI и как-то вырезать записанные изображения, когда я пытаюсь повернуть его на угол (скажем, на 30 градусов). Может ли кто-нибудь предложить мне, что может быть проблемой. Определения CreateFont и текст, который будет написан приведен ниже:Рисование вертикального текста с использованием MFC

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); 

Это дает выход:

enter image description here

Любые предложения о том, где я может быть неправильно?

ответ

1

При использовании функции DrawText убедитесь, что вы также указываете DT_NOCLIP в качестве параметра вашего формата, чтобы он не обрезал ваш вывод.

Ссылка: MSDN

Что-то вроде этого:

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

Надеется, что это помогает!

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"); 

Затем я получаю вертикальное отображение этого текста. Может быть, это поможет вам.

Смежные вопросы