ボスケテください・・。

メインウィンドウ1つとメインウィンドウの子ダイアログ1つという構成で作っているのですが
ダイアログ内のボタンが押された場合にメッセージボックスを表示するという処理をいれたところ
メッセージボックスが数回表示されてしまい困っています。
ちなみにメッセージボックス関数をprintfにしたところ1回のみのコールになっています。

呼び出し履歴を追ったところ
直接的な原因としては
WM_COMMAND内において
MessageBoxコール時に
MessageBoxA内にてさらにメッセージ処理をしているらしく(SendMessage?)
ダイアログのプロシージャが再度呼び出されて同じメッセージをうけとっており
再度MessageBoxがコールされているという状態でした。

これはどうやったら回避できるのでしょうか?