Clear Filters
Clear Filters

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

6 views (last 30 days)
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?

Answers (1)

Stephen23
Stephen23 on 6 Apr 2015
Edited: Stephen23 on 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 Comments
Stephen23
Stephen23 on 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.

Sign in to comment.

Categories

Find more on Environment and Settings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!