【问题标题】:How to repaint static control on changing text?如何在更改文本时重新绘制静态控件?
【发布时间】:2013-06-18 11:12:48
【问题描述】:

我处理 WM_CTLCOLORSTATIC 消息为静态控件制作透明背景:

case WM_CTLCOLORSTATIC:
{
SetTextColor((HDC)wParam,RGB(0,0,0));
SetBkMode((HDC)wParam,TRANSPARENT);
HBRUSH return_bush = (HBRUSH)GetStockObject(NULL_BRUSH);
return (LRESULT)return_brush;
}

这很好用。 现在我尝试通过调用 SendMessage() 来更改静态控件的文本。但结果是新文本被放置在现有文本之上。我认为需要重新绘制静态控件。 如何重绘静态控件?怎么做?

【问题讨论】:

    标签: c++ windows winapi c++builder


    【解决方案1】:

    我认为您的问题(在透明静态控件中更改文本)的答案已经在 Stackoverflow 上;见here

    【讨论】:

    • 谢谢,但是在哪里插入这个代码?:RECT rect; HWND hctrl; hctrl = GetDlgItem(hwnd, ControlID); GetClientRect(hctrl, &rect); MapWindowPoints(hctrl, hwnd, (POINT *)&rect, 2); InvalidateRect(hwnd, &rect, TRUE);要处理哪个 WM 消息?
    • 在更改静态控件文本的地方插入代码(在 SendMessage 之后)
    猜你喜欢
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2012-02-26
    • 2011-11-23
    • 2021-01-17
    • 2011-05-03
    • 2014-07-09
    相关资源
    最近更新 更多