How to link message box OK button to other function? (matlab gui)

2 visualizzazioni (ultimi 30 giorni)
When user click 'OK', The ok button does something...
h = msgbox('Operation Completed','Success');
if strcmp(h,'OK')
..................
end
The strcmp not functioning.
What is the value of 'OK' in the msgbox?

Risposte (1)

Stephen23
Stephen23 il 6 Apr 2015
Modificato: Stephen23 il 6 Apr 2015
When you read the documentation for msgbox, it clearly states the the output is "Message dialog box handle returned as a scalar". So the output is a handle, which is useful for keeping track of graphics objects, but it is certainly not a string. Who told you that the output was a string?
You can query the properties of the handle using get.
Also note that simply calling msgbox does not make MATLAB wait for a response, but the code will continue running as soon as the box has been created. If you wish to for the code execution to wait for the user response, then you will need to use waitfor.
You could try something like this:
waitfor(msgbox(...))
But it really depends on what functionality you want to achieve. Can you please describe what you want to happen with this code, and how it should respond given different user interactions (e.g. they close the dialog box without clicking okay).
  3 Commenti
Stephen23
Stephen23 il 6 Apr 2015
When you read the documentation for questdlg it states clearly that it returns a string: "button is set to the name of the button pressed...", which is why this works for you.

Accedi per commentare.

Categorie

Scopri di più su Environment and Settings in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by