gpt4 book ai didi

c++ - DrawStatusText 不会在第一次调用时绘制文本,仅在后续调用时绘制

转载 作者:行者123 更新时间:2023-11-28 01:24:10 25 4
gpt4 key购买 nike

我有一个程序在 WM_PAINT 消息期间使用了 DrawStatusTextW() 函数。调用时,不绘制任何文本。但是,在随后的调用中,例如将窗口移动到任务栏下方然后将其拉回来,文本将被绘制。

我曾尝试对函数使用不同的标志,还尝试将其放在 WM_CREATE 消息中。没有影响。

   RECT status_rect;
HDC status_dc;

SNDMSG(controls.status_bar, SB_GETRECT, 0, reinterpret_cast<LPARAM>(&status_rect));
status_dc = GetDC(controls.status_bar);
SelectObject(status_dc, status_font);
DrawStatusText(status_dc, &status_rect, L"Ready.", SBT_NOBORDERS);
ReleaseDC(controls.status_bar, status_dc);

它应该在第一次调用时绘制状态文本。我不应该在窗口周围移动以使其重新绘制。

最佳答案

每个 HWND 处理自己的绘画。如果您在绘制父窗口时在状态栏上绘制,状态栏自身的绘制处理将清除您绘制的内容。

如果你想自定义绘制状态栏,make the status bar be owner drawn并处理 WM_DRAWITEM在其父窗口中显示消息。

关于c++ - DrawStatusText 不会在第一次调用时绘制文本,仅在后续调用时绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54730676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com