Changing the width I use a STRLEN to work out how many characters, using a Foreach for a list getting the maximum number of characters then use a fuzz factor like 1.2 * length for width.
For a list box type dcl I use a library approach and demand load a predefined lisp. (if (not listbox)(load "listbox")) so only 2 line of code needed. I use one by AlanjT or another from Lee-mac.
Re library approach I have Multi getvals, Multi radio buttons, Multi toggles, all grow as required from a list so like 3 lines of code is all you need. A Multi column Radio buttons is being worked on now. Go Cadtutuor/downloads there free. All have example code in them.