gpt4 book ai didi

c++ - Win32 C++ 子类标签在调用 WM_SETTEXT 后未收到 WM_PAINT

转载 作者:行者123 更新时间:2023-11-28 04:52:06 27 4
gpt4 key购买 nike

子类控件在您调用 WM_SETTEXT 后未收到 WM_PAINT 是否正常?

父级确实收到 WM_CTLCOLOR,但我想在我的子类 WM_PAINT 消息中绘制所有内容。

我认为在调用 WM_SETTEXT 之后调用 InvalidateRect 是可行的方法吗?

如果您想查看代码,请告诉我。我觉得这个问题没有必要,这就是我最初将其排除的原因。

最佳答案

是否发送 WM_PAINT 以响应 WM_SETTEXT 取决于哪个窗口类已被子类化,例如按钮无效但列表框不是(列表框的窗口文本只不过是一个调试辅助工具,因为它是未在 UI 中显示)。

如果你的类是这样设置文本应该无效你总是可以添加类似下面的东西到你的子类的 WindowProc:

case WM_SETTEXT: {
LRESULT res = CallWindowProc(lpfnParent, hWnd, WM_SETTEXT, wParam, lParam);
InvalidateRect(hWnd, nullptr, true);
return res;
}

这样您就不需要在每次设置控件文本时都使用 InvalidateRect。

关于c++ - Win32 C++ 子类标签在调用 WM_SETTEXT 后未收到 WM_PAINT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47955190/

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