昔やったことがあったのですが、そのときのコードを見つけられないので、記憶を頼りに書きます。
確認していないので細部で間違っているかもしれませんが、大まかな方向性は合っていると思います。
質問者さんのやりたいこととずれていたらすみません。
1)モードレスダイアログを作成する際に、親ウィンドウのポインタを渡しておく
C++
1 CDialog dlg;
2 dlg.Create(IDD_XXXDLG,this);
2)モードレスダイアログ側で、親ウィンドウをDisableにする
C++
1 this->GetParent()->EnableWindow(FALSE);
これで親のウィンドウは操作できなくなるはずです。
モードレスダイアログを終了させる際、親ウィンドウをEnableにすることを忘れるとどうしようもなくなるので注意が必要です。他にもモーダルっぽく動かすにはいろいろ設定してやらないといけないものがあったと思いますが(OnCancelにダイアログを破棄するコードを追加するなど)、必要に応じて追加してください。
以上、ご参考まで。
2019/05/04 14:39