From: Dirk Herijgers on 8 Sep 2008 09:31 Hi All, My Windows Vista returns always 0 when executing GetSystemMetrics(SM_CXPADDEDBORDER). The return value must be (default) 4. Can someone help me ?? Even the function GetThemeSysSize(GetWindowTheme(SELF:Handle()),SM_CXPADDEDBORDER) returns 0. DEFINE SM_CXPADDEDBORDER := 92 At last: The function SystemParametersInfo(SPI_GETNONCLIENTMETRICS,....) return 0 for the member iPaddedBorderWidth. Thanx for your help. Dirk --
From: Malcolm on 10 Sep 2008 07:08 Dirk Herijgers wrote: > > Hi All, > > My Windows Vista returns always 0 when executing > GetSystemMetrics(SM_CXPADDEDBORDER). The return value must be (default) > 4. > Can someone help me ?? I don't think you are the first to ask http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1264728&SiteID=1 I also found === lm [MSFT] said: PatriotB: you are correct. IEXPLORE.EXE ships downlevel, so is marked as 5.02 (note that the Internet Options dialog is launched by IEUSER.EXE on Windows Vista, so is marked 6.0 and is not affected). The extra border padding for dialogs was found to break too many applications, so is active only for new applications. The plan of record was indeed to expose a way for applications marked as < 6.0 to opt in to the border padding via a manifest setting, but apparently this feature didn't make it. There is an app compat flag to switch to v5 behavior for v6 apps, but not the other way around. There is also a setting to turn off wide borders altogether for your application, even for resizable frames (some applications crash as soon as you change the border width, even on XP). Note that this is only visible with Aero Basic, since with Aero, the DWM will overdraw the glass frame around the dialogs (without changing their size), so they are visually indistinguishable from other dialogs. (BTW when a dialog is overdrawn this way in Aero, you can query the extended frame bounds via the new DWMWA_EXTENDED_FRAME_BOUNDS value of the DWMWINDOWATTRIBUTE enum, see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/dwmgetwindowattribute.asp. This will be fully documented in the final release of the Windows SDK). Note that using the MajorSubsystemVersion is nothing new, we did it for Windows 95/NT 4.0 - the window manager behaves quite differently if you're not compiled as a 4.0+ application. The difference between the subsystems is: For < 6.0 apps (at 96dpi): iBorderWidth = 5 iPaddedBorderWidth = SM_CXPADDEDBORDER = 0 SM_CXFRAME = 8 For 6.0+ apps (at 96dpi): iBorderWidth = 1 iPaddedBorderWidth = SM_CXPADDEDBORDER = 4 SM_CXFRAME = 4 I told you I wasn't giving all the details in this post :-) October 17, 2006 4:50 AM === > Even the function > GetThemeSysSize(GetWindowTheme(SELF:Handle()),SM_CXPADDEDBORDER) > returns 0. > > DEFINE SM_CXPADDEDBORDER := 92 > > At last: The function > SystemParametersInfo(SPI_GETNONCLIENTMETRICS,....) return 0 for the > member iPaddedBorderWidth. > > > Thanx for your help. > > Dirk >
From: Dirk Herijgers on 11 Sep 2008 03:54 Malcolm wrote: > I don't think you are the first to ask > http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1264728&SiteID=1 > > I also found > === > lm [MSFT] said: > > PatriotB: you are correct. IEXPLORE.EXE ships downlevel, so is marked > as 5.02 (note that the Internet Options dialog is launched by > IEUSER.EXE on Windows Vista, so is marked 6.0 and is not affected). Hi Malcolm, I don't understand at all. My application has a manifest version 6 for Vista. What is meaning with downlevel to 5.02 ? How to check this 'level' ? Can you explain me in your own words ? Dirk --
|
Pages: 1 Prev: Vo2Ado Sql Server Adding Constraint Next: Set Window Owner |