こんな時はみなさんどうしてますか?
ダイアログプロシージャ内の処理で
・WM_INITDIALOG内で初期化エラーをメッセージボックスで出す
 例)設定ファイルの存在確認エラーなど
・WM_PAINT内で初期化済みのリソース(メモリデバイスコンテキストなど)
 を使用して描画。
モーダルなメッセージボックスで処理を止めてもディスパッチされるので
プロシージャにはWM_PAINTのメッセージは飛んでくるんですよ。
ここで、初期化エラーによりメモリデバイスコンテキストはまだ未初期化
なわけです。