我已经创建了一个带有自定义chrome的窗口:
WM_NCHITTEST
并返回窗口标题和边框的相应值WM_NCPAINT
(和WM_NCUAHDRAWCAPTION
,WM_NCUAHDRAWFRAME
),WM_SETTEXT
,WM_SETICON
处理WM_NCACTIVATE
,DefWindowProc
和WM_VISIBLE
WM_WINDOWPOSCHANGED
以应用圆角的窗口区域。 Windows正在处理移动/调整大小。我在窗口样式中添加了WS_THICKFRAME
以启用Aero Snap功能。但是现在当窗口最大化时,它位于(-5,-5)
并且我的自定义标题栏被切断(没有WS_THICKFRAME
就不会发生这种情况。)
解决这个问题的正确方法是什么?什么影响这个位置?它似乎与WM_NCHITTEST
返回的值无关。
答案 0 :(得分:1)
迟到的答案,但似乎没有其他人回答。
您可以检查窗口何时最大化,并在窗口最大化时考虑边距。您可能希望处理WM_NCCALCSIZE而不是WM_NCPAINT以使整个窗口显示为客户区,而不是绘制非客户区。
这描述了一种实现自定义chrome的方法(我是作者): http://blogs.msdn.com/b/wpfsdk/archive/2008/09/08/custom-window-chrome-in-wpf.aspx
希望有所帮助,