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

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

Réponse acceptée

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

Plus de réponses (0)

Catégories

En savoir plus sur アプリの作成 dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!