>今方法2でやってみましたが,できませんでした.

マジで?
ループ中に PeekMessage , TranslateMessage , DispatchMessage でメッセージループを作ればいけるかも。

>計算中に,そのアプリを移動しようとしても移動ができず,再描画もしてくれませんでした.

移動なども行いたいならマルチスレッドの方が良いかも。
移動を頻繁に行うならパフォーマンス的にもマルチスレッドが有利

いずれにしろ計算中にボタンを押されると多重に実行される可能性があるのでボタンの有効無効の切り替えが必要