gpt4 book ai didi

C++ WM_NCCALCSIZE 未被发送

转载 作者:可可西里 更新时间:2023-11-01 09:48:59 32 4
gpt4 key购买 nike

我试图将编辑控件中的文本垂直居中,经过一些研究后我发现我必须处理 WM_NCCALCSIZE 消息。所以我已经将我的编辑控件子类化,但从未发送 WM_NCCALCSIZE 消息。

我做错了什么吗?

编辑:

所以我正在很好地处理 WM_NCCALCSIZE 消息,并且我通过将 WS_EX_CLIENTEDGE 传递给 CreateWindowEx 创建了一个 3d 边框。但是,如果我通过终止主题服务来禁用 Windows 主题,边框就会在处理 WM_NCCALCSIZE 消息的控件上消失。另一个不处理 WM_NCCALCSIZE 消息的控件仍然具有正常的边框。

所以我假设我应该在 WM_NCCALCSIZE 中做一些允许我保留边界的事情?如果是这样呢?如果没有办法恢复边界?

最佳答案

想通了,WM_NCCALCSIZE在编辑控件被子类化之前发送。
所以我不得不父类(super class) EDIT类。

编辑:
我刚刚想到的另一个解决方案是将其子类化,然后调用 SetWindowPosSWP_FRAMECHANGED , 这会导致它发送 WM_NCCALCSIZE消息。

如果有人对为什么一种方法比另一种更好有任何意见,请发表评论:)

关于C++ WM_NCCALCSIZE 未被发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7539711/

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