首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DrawText问题

DrawText问题
EN

Stack Overflow用户
提问于 2020-06-28 14:01:33
回答 1查看 115关注 0票数 0

我对这个功能有几个问题:

如果我稍微移动一下窗口,或者把它切换到另一个监视器(顺便说一句,它有不同的缩放),那么文本的较小版本就会出现在初始文本之前,如果我在打印文本之前调用CreateFont和SelectObject

我做得对吗?也许在WM_PAINT的案子里有太多的电话?我不知道还能怎么做

我的代码:

代码语言:javascript
复制
case(WM_PAINT):
{
    HDC hDC = GetWindowDC(Window);

    RECT lpRect;
    GetClientRect(Window,
                  &lpRect
    );

    SetTextColor(hDC, RGB(0, 0, 0));
    SetBkMode(hDC, TRANSPARENT);

    DrawTextW(hDC,
              L"Loading...",
              -1,
              &lpRect,
              (DT_SINGLELINE | DT_TOP | DT_VCENTER | DT_NOCLIP)
    );

    DeleteDC(hDC);
    break;
}
case(WM_ERASEBKGND):
{
    HDC hDC = GetWindowDC(Window);

    RECT lpRect;
    GetClientRect(Window, &lpRect); 

    HBRUSH hBrush = CreateSolidBrush(RGB(255, 255, 255));

    FillRect(hDC, &lpRect, hBrush); 
    DeleteObject(hBrush);
    break;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-28 14:05:00

WM_PAINT中,您必须调用BeginPaint()EndPaint()。这样您就可以获得设备上下文。如果您不调用EndPaint(),那么rect就不会被验证。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62623575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档