我的应用程序有一个应用程序的标准顶级窗口。我需要强制重新绘制窗口chrome(也称为窗口的非客户区域)。我不关心客户区是否也被重新粉刷,但是铬本身需要被迫重新粉刷。
特别是我需要这个在Windows 7上工作。在我的特定情况下,它是否适用于其他操作系统版本并不重要。解决方案可以是C,C ++,C#或任何其他语言。
答案 0 :(得分:3)
根据MSDN,似乎
RedrawWindow( hWnd, NULL, NULL, RDW_INVALIDATE | RDW_FRAME );
正是您要找的。 p>
RDW_FRAME导致窗口的非客户区域的任何与更新区域相交的部分接收WM_NCPAINT消息。还必须指定RDW_INVALIDATE标志;否则,RDW_FRAME无效。除非指定了RDW_UPDATENOW或RDW_ERASENOW,否则在执行RedrawWindow期间通常不会发送WM_NCPAINT消息。
答案 1 :(得分:-2)
也许您可以将WM_NCPAINT消息发送到窗口
http://msdn.microsoft.com/en-us/library/dd145212%28VS.85%29.aspx