C/C ++/C#:Windows 7でウィンドウクロムの塗り直しを強制する方法は?
-
30-09-2019 - |
質問
私のアプリケーションには、アプリケーション用の標準のトップレベルウィンドウがあります。ウィンドウクロム(別名ウィンドウの非クライアント領域とも呼ばれる)の塗り直しを強制する必要があります。クライアント領域も塗り直されているかどうかは気にしませんが、クロム自体に塗り直しを強いる必要があります。
特に、Windows 7で動作するためにこれが必要です。他のOSバージョンで動作するかどうかは、特定のケースでは重要ではありません。解決策は、C、C ++、C#、またはその他の言語です。
解決
によると MSDN, 、 のようだ
RedrawWindow( hWnd, NULL, NULL, RDW_INVALIDATE | RDW_FRAME );
あなたが探しているものです。
RDW_FRAMEは、更新領域と交差するウィンドウの非クライアント領域の任意の部分を、WM_NCPAINTメッセージを受信させます。 RDW_INVALIDATEフラグも指定する必要があります。それ以外の場合、RDW_FRAMEには効果がありません。 wm_ncpaintメッセージは、通常、RDW_UPDATENOWまたはRDW_ERASENOWのいずれかが指定されていない限り、RedRawWindowの実行中に送信されません。
他のヒント
多分あなたはwm_ncpaintメッセージをウィンドウに送信することができます
http://msdn.microsoft.com/en-us/library/dd145212%28vs.85%29.aspx
所属していません StackOverflow