代码之家  ›  专栏  ›  技术社区  ›  Phil Wright

C/C++/C:如何在Windows 7上强制重新绘制窗口Chrome?

  •  3
  • Phil Wright  · 技术社区  · 14 年前

    我的应用程序有一个应用程序的标准顶级窗口。我需要强制重新绘制窗口Chrome(也称为窗口的非工作区)。我不在乎客户区是否也重新喷漆,但铬本身需要强制重新喷漆。

    尤其是在Windows7上我需要这个。在我的特殊情况下,它是否适用于其他操作系统版本并不重要。该解决方案可以是C、C++、C语言或任何其他语言。

    2 回复  |  直到 14 年前
        1
  •  3
  •   MerickOWA    14 年前

    根据 MSDN 看来

    RedrawWindow( hWnd, NULL, NULL, RDW_INVALIDATE | RDW_FRAME );
    

    就是你要找的。

    RDW_帧导致窗口中与更新区域相交的非工作区的任何部分接收wm_ncpaint消息。还必须指定RDW U invalidate标志;否则,RDW U帧无效。在执行redrawwindow期间,通常不会发送wm_cpaint消息,除非指定了rdw_updatenow或rdw_erasenow。
        2
  •  -2
  •   Camilo Sanchez    14 年前

    也许你可以把wm_ncpaint信息发送到窗口

    http://msdn.microsoft.com/en-us/library/dd145212%28VS.85%29.aspx