经过一番研究,我发现我必须处理WM_NCCALCSIZE消息,因此我试图将文本垂直放置在编辑控件中。
因此,我已将编辑控件归为子类,但从未发送WM_NCCALCSIZE消息。

难道我做错了什么?

编辑:

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

所以我假设我应该在WM_NCCALCSIZE中做些什么让我保持边界?如果可以的话如果没有任何办法使边界恢复原状?

最佳答案

为什么不摆弄WM_NCCALCSIZE(这是一条很难管理的消息),而不是直接在垂直方向上重新放置编辑控件,以使文本位于您喜欢的垂直位置上呢?您可以将其放在白色框内以提供周围的空白。另外,您可以使用EM_SETRECT将文本准确地放置在所需的位置。

09-17 08:54