Inputdlg function - how to edit it to fit to screen.

5 views (last 30 days)
I am trying to edit inputdlg function in order to get the dialogue box to fit to screen. Would love some help, as I keep editing the figure width and height but there seems to be some restriction somewhere in the code that I can't spot.
Has anyone done this before?

Answers (2)

Walter Roberson
Walter Roberson on 7 Feb 2011
inputdlg() calculates how much space it needs and then calls upon the utility routine getnicedialoglocation() to position that space upon the screen.
In order to get this to work, you will probably need to use the Options argument using the Resize and WindowStyle sub-options so that you get a non-model dialog. But before calling on inputdlg(), fire up a timer that will search for the dialog and resize it (timers interrupt.)
Or just hack the source near line 288 where it calls the getnicedialoglocation() function and toss in your own sizing.

E
E on 8 Feb 2011
After playing around for a while, it seems the best option was adding the following line of code:
set(InputFig,'Position',[1 1 1280 1024])
just before line 328 where it calls to 'drawnow;'
The input box and input text is still needs to be centered if this is done though.
  1 Comment
Walter Roberson
Walter Roberson on 8 Feb 2011
Instead of [1 1 1280 1024],
t = get(0,'MonitorPosition');
set(InputFig, 'Position', t(1,:) + [0 1 0 0])
This does force the first monitor, but if you want to be playing around with "full screen" when you have multiple monitors, you need be more specific about what that means.

Sign in to comment.

Categories

Find more on Entering Commands in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!