2

誰かが WS_EX_COMPOSITED によって引き起こされたバグを処理する WndProc を作成する方法を説明できますか (一部のコントロールでは、バグは無限の WM_PAINT です)。

私が WS_EX_COMPOSITED に使用するのは、アプリ ウィンドウが非表示になってスクリーンショットを撮れるようにするためです (WS_EX_COMPOSITED が設定されていない場合、PrintWindow は失敗します)。スクリーンショットは取得されますが、CPU 使用率は常に 99% です。

Google から見つけた情報は次のとおりです。 ATL CWindowImpl で WM_PAINT ループを終了しない http://forums.codeguru.com/showthread.php?t=483719

しかし、あまり明るくはありません... WndProcに追加した唯一の変更は次のとおりです。

if(Msg==WM_PAINT||Msg==WM_NCPAINT||Msg==WM_ERASEBKGND) { return DefWindowProc(hWnd,Msg,wParam,lParam); }

CPU 使用率は低下しますが、すべてのコントロールが正しく描画されません。

4

0 に答える 0