Windows settings that affect screen layout

The way my app looks on various PCs screens is affected by:

1) the number of pixels of the display
2) the DPI setting (in windows graphics preferences)
3) what else?

because, although it displays fine on 95% of PCs, I sometimes find one where the layout of the controls is weird, overlapping, etc.   I've seen it now recently on a couple of 1366x768 win7 screens, and I can't figure out why -- what is differnet about settings on those PCs?? Or is it a problem or setting assocaited with a graphics card?  Finally, I have seen this a few times on PCs in asian countries that try running my app -- so maybe something that is configurable about fonts...

Anyway, the question is, I read the screen size and DPI in my code, and then I attempt to "do the right thing" to make the layout look nice and fit on the screen.  What other parameters are there that I should be able to detect and do something about?

My app is MS Visual C++ using MFC.

Thanks....
tullheadAsked:
Who is Participating?
 
jkrCommented:
Setting them? No, certainly not, but I thought of evaluating them. Grabbing that struct works via 'SystemParametersInfo()' and SPI_GETNONCLIENTMETRICS, e.g.
NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof(NONCLIENTMETRICS);

SystemParametersInfo(NONCLIENTMETRICS, ncm.cbSize,(PVOID)&ncm,FALSE);

Open in new window

0
 
jkrCommented:
>> 3) what else?

E.g. the System Font plus its size as well as the the NONCLIENTMETRICS (http://msdn.microsoft.com/en-us/library/windows/desktop/ff729175(v=vs.85).aspx)
0
 
tullheadAuthor Commented:
JKR --  Hmmm....  I suppose it is not cool for my app to "set" these values, as they are system wide, correct?
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
tullheadAuthor Commented:
JKR - could you show me a code snippet on how I grab this sctructure?
0
 
tullheadAuthor Commented:
Thanks.  I think you meant to have the first argument like this:

    SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ncm.cbSize,(PVOID)&ncm,FALSE);

Correct?
0
 
tullheadAuthor Commented:
Thanks!
0
 
jkrCommented:
Yes, sorry, a copy&paste accident ;o)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.