在您调用WM_SETTEXT后,子类控件是否接收WM_PAINT是否是正常行为?
父级确实接收WM_CTLCOLOR,但我想在我的子类WM_PAINT消息中绘制evertything。
我假设在调用WM_SETTEXT之后调用InvalidateRect是要走的路?
如果您想查看代码,请告诉我。我觉得这个问题没有必要,这就是为什么我最初把它排除在外。
答案 0 :(得分:1)
是否响应WM_SETTEXT发送WM_PAINT取决于哪个窗口类已被子类化,例如按钮无效但列表框不是(列表框的窗口文本仅仅是调试辅助,因为它是没有在UI中显示。)
如果您的类设置文本应该无效,您可以随时向您的子类'WindowProc添加类似以下内容:
case WM_SETTEXT: {
LRESULT res = CallWindowProc(lpfnParent, hWnd, WM_SETTEXT, wParam, lParam);
InvalidateRect(hWnd, nullptr, true);
return res;
}
这样,每次设置控制文本时都不需要InvalidateRect。