Hey!
I'm upgrading a Win2K/XP MFC/Win32 (no .NET) application to give it a more modern look and feel when running in Vista. I use Visual Studio 2005 C++ and have the February 2003 Platform SDK loaded.
The application uses a CDialogBar derived class with an override added for CalcDynamicLayout() so that the dialog bar will always take up all available vertical or horizontal space in the main frame depending on its orientation.
The calculation to figure out how much space is available is off by the new border padding used by the Aero theme so the dialog bar is getting cut off on the right side. If I could just get my hands on the size of that border padding, I could subtract it out and get the correct available size. After digging on MSDN, I found that the GetSystemMetrics() call was updated for Vista, providing a new index, SM_CXPADDEDBORDER, to get that size.
Since I have the Feb 2003 SDK loaded, SM_CXPADDEDBORDER isn't defined so I added my own #define to set it to 92, which is the number shown in the documentation on http://msdn2.microsoft.com/en-us/library/ms724385.aspx. The DLL involved is user32.dll. The documentation also states that if the function fails, the return value is 0. My problem is that I'm ALWAYS getting 0, even when running on Vista. I would have thought that the user32.dll supplied with Vista should support this call.
Has anyone else run into this Anyone have any clues or suggestions
Thanks!
Diane