我使用 dwmextendframeintoclientarea 创建了一个窗口,一切正常,除了顶部框架高度小于我在窗口最大化时设置的值。
因此,使用 drawthemetext 绘制的文本不会完全垂直居中对齐,如下图所示。
第一个是标题栏,而窗口是正常大小,而第二个窗口是最大化的。
这是因为顶部框架的高度实际上小于我在 DwmExtendFrameIntoClientArea 中设置的值。
问题是在启用 dwm 并且窗口最大化时如何获得顶部框架的实际高度?
我使用 dwmextendframeintoclientarea 创建了一个窗口,一切正常,除了顶部框架高度小于我在窗口最大化时设置的值。
因此,使用 drawthemetext 绘制的文本不会完全垂直居中对齐,如下图所示。
第一个是标题栏,而窗口是正常大小,而第二个窗口是最大化的。
这是因为顶部框架的高度实际上小于我在 DwmExtendFrameIntoClientArea 中设置的值。
问题是在启用 dwm 并且窗口最大化时如何获得顶部框架的实际高度?
当您的应用程序最大化时,Windows 的大小实际上比屏幕略大。因此,窗口的边缘会延伸到屏幕外,从而导致您观察到的渲染。MINMAXINFO
您可以在发送到窗口的消息中使用结构中收到的位置和大小WM_GETMINMAXINFO
来确定窗口在屏幕外延伸的距离,并在最大化时使用它来调整渲染。