经过一番研究,我发现我必须处理WM_NCCALCSIZE消息,因此我试图将文本垂直放置在编辑控件中。
因此,我已将编辑控件归为子类,但从未发送WM_NCCALCSIZE消息。
难道我做错了什么?
编辑:
所以我很好地处理了WM_NCCALCSIZE
消息,并且我将WS_EX_CLIENTEDGE
传递给CreateWindowEx
来创建3d边框。
但是,如果我通过杀死主题服务禁用Windows主题,则处理WM_NCCALCSIZE
消息的控件上的边框将消失。
另一个不处理WM_NCCALCSIZE
消息的控件仍然具有正常边框。
所以我假设我应该在WM_NCCALCSIZE
中做些什么让我保持边界?如果可以的话如果没有任何办法使边界恢复原状?
最佳答案
为什么不摆弄WM_NCCALCSIZE
(这是一条很难管理的消息),而不是直接在垂直方向上重新放置编辑控件,以使文本位于您喜欢的垂直位置上呢?您可以将其放在白色框内以提供周围的空白。另外,您可以使用EM_SETRECT
将文本准确地放置在所需的位置。