I know this ranges off-topic a little bit, but have you looked at the book (online or hardcopy)
Official Guidelines for User Interface Developers and Designers.
Note that though this link comes up with a "buy this book" page, you should check the navigation tree at left to read much of it online.
I'm not convinced that an application should be resizing form elements and text based on the screen resolution. If I upgrade from a 14" monitor at 800 x 600 to a 19" monitor at 1280 x 1024 I probably wanted more room to see more active windows, or larger windows with more text. My goal probably wasn't to see the same old thing blown up so I could sit 4 feet further away from the screen.
The same logic holds if I use the same monitor and flip resolutions.
There are vision issues. I have co-workers who run 640 x 480 on 17" and even 20" monitors due to vision impairments.
It seems to me the first thing to put effort into is making your forms resizable. Make sure that controls resize and/or float and/or stay docked to the form edges as the window gets resized.
Do everything in a base set of font sizes (labels, text, headings). Then let the
user choose whether they want everything increased or decreased in size (like the setting in most browsers). Even having just a few options like 80% / 100% / 125% can be useful.
I both agree and disagree with
HughLerwill. It may not be worth doing. But the idea everyone is running 1024 x 768 and up is a pipe dream. Check out one set of stats at
Browser Statistics, which has a section on resolutions. 800 x 600 is still quite common.
As for the mechanics of resizing, you could just iterate through the controls collection on the form. Use a case statement, possibly on TypeName(object), to handle controls that might have a non-standard property for font size, otherwise something like:
Code:
Private Sub cmd125Pct_Click()
Dim ctrl As Control
For Each ctrl In Me.Controls
ctrl.FontSize = 1.25 * ctrl.FontSize
Next
End Sub