You can write a dialog form dynamically to a file, load it, and use that dialog.
If you want to create control dynamically after the dialog has been opened, you can use
dcx.dll.
As far as buttons are concerned, you can change the caption of a button after it has been created, the dynamic part here applies only for the position of the control.
If you want a $? style input dialog which ask for several options, use $input and the new 'm' switch, it's perfect:
//noop $input(prompt,m,title,default_selection,test,default_selection,test2)