如何通过窗口限制文本区域?

时间:2013-09-24 19:22:45

标签: c++ winapi textout

我出文字了,但他爬到我窗户的区域,我怎么能解决它? 这是我的代码的一部分

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

文字会比“某些文字”长得多。

1 个答案:

答案 0 :(得分:2)

DrawText()上使用TextOut()。 DrawText允许您指定用于剪切文本的矩形。 DrawText()也可用于计算所需矩形的大小。