msgbox 関数でモーダルモード(modal) に指定しても、"OK" ボタンをクリックする​前にプログラム中の次​の処理が進んでしまう​のはなぜですか?

17 Ansichten (letzte 30 Tage)
MathWorks Support Team
MathWorks Support Team am 22 Jun. 2021
MATLAB プログラム中に以下のような処理を記述しています。
plot(1:1)
msgbox('コンター図の表示', 'modal')
contourf(peaks)
 
msgbox 関数によりメッセージボックスは表示されますが、OK ボタンを選択する前に、次の処理(ここでは contourf 関数)が実行されてしまいます。

Akzeptierte Antwort

MathWorks Support Team
MathWorks Support Team am 22 Jun. 2021
モーダルは「実行をブロックする」と同じものではありません。モーダル ダイアログ ボックスを使用すると、ユーザーが応答する前に他のウィンドウと対話できなくなりますが、MATLAB 関数の残りのコードの実行は妨げられません。
MSGBOXは情報を含むウィンドウを設置することを目的としており、「OK」ボタンは、人がその情報を見たということを意味します。ただし、ユーザー入力まで、ダイアログ ボックスは MATLAB 関数の実行を中断しません。
OK ボタンを押下するまで、後段の処理を待機させるには、QUESTDLG のような別の種類のダイアログ ボックスを使用するか、以下のように WAITFOR コマンドを MSGBOX と組み合わせて使用します。
例:
waitfor(msgbox('Wait for me.'));
disp('Done waiting.');

Weitere Antworten (0)

Kategorien

Mehr zu ダイアログ ボックス finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!