2013-09-24 4 views
2

Я из текста, но он поднялся по области моего окна, как я могу это исправить? Вот часть моего кодаКак ограничить область текста моим окном?

PAINTSTRUCT ps; 
    hdc=BeginPaint(hWnd3,&ps); 
    LOGFONT lf; 
    lf.lfWidth=0; 
    lf.lfHeight=14; 
    strcpy(lf.lfFaceName,"Times New Roman"); 
    lf.lfEscapement=lf.lfStrikeOut=lf.lfUnderline=0; 
    lf.lfClipPrecision=CLIP_DEFAULT_PRECIS; 
    lf.lfCharSet=1251; 
    lf.lfOrientation=0; 
    hf=CreateFontIndirect(&lf); 
    SelectObject(hdc,hf); 
    SetTextAlign(hdc,TA_CENTER); 
    GetClientRect(hWnd,&r); 
    TextOut(hdc,r.right/2,r.bottom/2,"Some text",strlen("Some text")); 
    DeleteObject(hf); 
    EndPaint(hWnd3,&ps); 

Текст будет гораздо больше, чем «Некоторые текст».

ответ

2

Использовать DrawText() вместо этого на TextOut(). DrawText позволяет указать прямоугольник для обрезки текста. DrawText() также может использоваться для расчета размера прямоугольника, который будет необходим.

+0

Я использовал эту функцию, мне нужен этот текст, чтобы перейти к новой строке, когда он дойдет до конца области окна, что-то вроде в консоли \ n. Сори за плохое оформление вопроса. Я новичок в WinAPI – user2650128

+1

спасибо Я нахожу, что хочу, использую DT_WORDBREAK и все работает отлично – user2650128

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

  • Нет связанных вопросов^_^