私がやろうとしているのは、同じプロセスでコントロールを持たないコントロールを自分自身を再描画することです()。再描画を完了しました。再描画ウィンドウコントロール(ブロックメソッドを使用)
UpdateWindow
を使ってみましたが、再描画が完了するのを待っているようです。
私がそれを描くのを待つ必要がある理由は、後で画面をつかみたいということです。
コントロールはdotNetコントロールではなく、通常のウィンドウコントロールです。
私がいることが確認されました:
- ハンドルが正しいです。
UpdateWindow
がtrueを返します。UpdateWindow
を呼び出す直前にInvalidateRect(hWnd, IntPtr.Zero, true)
を送信して、ウィンドウを無効にする必要があるかどうかを確認してください。- コントロールの親ウィンドウで同じことを試してみました。
コードを使用:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool InvalidateRect(IntPtr hWnd, IntPtr rect, bool bErase);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool UpdateWindow(IntPtr hWnd);
public bool PaintWindow(IntPtr hWnd)
{
InvalidateRect(hWnd, IntPtr.Zero, true);
return UpdateWindow(hWnd);
}
//returns true
。 –
@ S.A.Parkhidお願いします。 – Rotem
Hmm ..なぜ、_UpdateWindowが再描画が完了するのを待っていないと思われますか? –