I have a VB application which is working pretty well (with your valuable help). I installed a copy last week on a computer which was connected to a large (19") high resolution (1600 x 1200) LCD monitor. My user has set the display properties to use "LARGE SIZE (120 DPI)" on the General tab.

My dialog box contains a tab control which adjusts the size (width) of the dialog box according to which tab is being used. Unfortunately the "LARGE SIZE (120 DPI)" setting is fouling things up. Is there an easy way in VB to query windows about the DPI of the display so that an IF statement can appropriately adjust widths.

Is there another way that control sizes should be designed for to allow users to make this DPI adjustment?

Who is Participating?

mebmmb:
> I assume that SSTAB1.WIDTH is in pixels
Possibly.
What you can do is check your current settings - something you physically know - and store the Height and Width as constants
Then, when you load the form, you can compare the screen settings with these constants, then adjust the SSTAB1.Width by the ratio
Something like
Const MyScreenWidth = 15360
...
Sub Form_Load
UserScreenWidth = Screen.Width
Ratio = UserScreenWidth/MyScreenWidth
SSTAB1.Width = SSTAB1.Width * Ratio

(Not tested... just a pointer to the idea. you might have to divide by ratio...)

Hi mebmmb:
Just a pointer in the right direction
Try experimenting with the Screen object
Depending on your screen, Screen.Height and Screen.Width change
The screen object has other properties which might be usefule

Dabas

0

mebmmbAuthor Commented: 2004-04-16

I've looked under SCREEN and SCREEN OBJECT and seen a couple of references which might end up being helpful. Is there way to tie a property like SSTAB1.WIDTH to TWIP or object.TwipsPerPixelX? I assume that SSTAB1.WIDTH is in pixels.

The Screen object's Width and Height properties give the screen size in twips. Its TwipsPerPixelX and TwipsPerPixelY properties give the number of twips per pixel in the horizontal and vertical directions. Divide twips by twips-per-pixel to get pixels.