WM_PAINTを処理するプログラムは、再描画する必要の無い部分はしないということも出来るはずなので、隠れたままの状態ではソフトによって不具合があるかもしれません。
FindWindow()でハンドルを受け取った後、SetActiveWindow()で一度ウィンドウをアクティブにしてから処理をしてみてはいかがでしょうか?
ご回答ありがとうございます、
アクティブにしなくても良い方法を探しています。
http://hp.vector.co.jp/authors/VA003525/tips14.htm
Delphiの例ですが、WM_PAINTとDCを与えることで可能なようです。
この方法ではうまくいきませんでしたが、DCで検索中に自己解決したので終了します。
XP以降にはPrintWindowという関数があり、隠れていても大丈夫なようです。