• ベストアンサー

画面全体を再描画させたい

C#でアプリケーションを作っています。 画面全体(自分自身のウィンドウだけではなく、デスクトップ全体。壁紙やタスクトレイ等も)を再描画させたいのですが、どうすればいいのでしょうか? .NET Framework APIでそのようなものがなければ、Win32 APIでもかまわないので、アドバイスよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

Win32APIのInvalidateRectで指定のウインドウの再描画を促す事が出来ます。 (WM_PAINTをポストするのと同じ効果です。) デスクトップ(壁紙)は GetDesktopWindow タスクトレイは FindWindowで"Shell_TrayWnd"を指定すればウインドウハンドルを取得できます。 すべてのウインドウハンドルを取得したいなら EnumWindowsを使います。

jyuzou
質問者

お礼

アドバイスどうもありがとうございました。 うまくできました!

関連するQ&A