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