FoxPro Timer object can be used to reposition MESSAGEBOX and GETPRINTER() dialogs. This technique may work for other dialogs as well.
When you invoke a dialog, any existing FoxPro Timer instance keeps ticking on the background. So you may call a procedure from its Timer event. This procedure must find the dialog (for example, using GetWindow API call) and then call SetWindowPos API to position this window.
It's not exactly smooth, most of the times you see the dialog window "jumping" to the new position. And it requires some coding.
FoxPro code samples based on this technique (members area):
How to position the GETPRINTER() dialoghttp://www.news2news.com/vfp/?example=482Extended MessageBox Class http://www.news2news.com/vfp/?example=418How to change font name and size in the MessageBox dialoghttp://www.news2news.com/vfp/?example=434