SystemParametersInfo ( SPI_GETNONCLIENTMETRICS... 在VC 2008 里不能正常工作
2008-12-23 19:33
661 查看
NONCLIENTMETRICS ncms = {0} ;
ncms.cbSize = sizeof(NONCLIENTMETRICS);int s = sizeof(NONCLIENTMETRICS);
BOOL b = SystemParametersInfo (SPI_GETNONCLIENTMETRICS, (int)&s, &ncms, 0);
DWORD dw = GetLastError();
上面这段代码在VC 6.0 中工作正常,但是在VC 2008 里 SystemParametersInfo 返回 0,而 GetLastError 返回的却是 0
简单订正如下:ncms.cbSize = sizeof(NONCLIENTMETRICS) - sizeof(ncms.iPaddedBorderWidth);
实际是由于从 Vista 和 Windows Server 2008 开始 NONCLIENTMETRICS 在最后增加了iPaddedBorderWidth字段,如果你的程序打算同时支持 vista 或 XP ,Windows 2000, Windows Server 2003,那么应该先调用 GetVersionEx 检测Windows版本,然后决定是否需要减去 sizeof (ncms.iPaddedBorderWidth) ;
参考: http://msdn.microsoft.com/en-us/library/ms724506(VS.85).aspx
ncms.cbSize = sizeof(NONCLIENTMETRICS);int s = sizeof(NONCLIENTMETRICS);
BOOL b = SystemParametersInfo (SPI_GETNONCLIENTMETRICS, (int)&s, &ncms, 0);
DWORD dw = GetLastError();
上面这段代码在VC 6.0 中工作正常,但是在VC 2008 里 SystemParametersInfo 返回 0,而 GetLastError 返回的却是 0
简单订正如下:ncms.cbSize = sizeof(NONCLIENTMETRICS) - sizeof(ncms.iPaddedBorderWidth);
实际是由于从 Vista 和 Windows Server 2008 开始 NONCLIENTMETRICS 在最后增加了iPaddedBorderWidth字段,如果你的程序打算同时支持 vista 或 XP ,Windows 2000, Windows Server 2003,那么应该先调用 GetVersionEx 检测Windows版本,然后决定是否需要减去 sizeof (ncms.iPaddedBorderWidth) ;
参考: http://msdn.microsoft.com/en-us/library/ms724506(VS.85).aspx
相关文章推荐
- SystemParametersInfo ( SPI_GETNONCLIENTMETRICS... 在VC 2008 里不能正常工作
- SystemParametersInfo ( SPI_GETNONCLIENTMETRICS... 在VC 2008 里不能正常工作
- SystemParametersInfo (SPI_GETNONCLIENTMETRICS... 在VC 2008 里不能正常工作
- SystemParametersInfo ( SPI_GETNONCLIENTMETRICS...)在VC 2008 里不能正常工作
- SystemParametersInfo ( SPI_GETNONCLIENTMETRICS... 在VC 2008 里不能正常工作
- SystemParametersInfo 在VC6.0正常,在VC 2008 里不能正常工作 的解决办法
- VC MFC 中 Class Wizard 不能正常工作的时候几种处理方法
- jQuery 1.4.2 getJSON() 不能正常工作的原因
- jQuery 1.4.2 getJSON() 不能正常工作的原因
- SystemParametersInfo (SPI_GETNONCLIENTMETRICS ... 返回false的原因分析
- VC工作区间就不能正常打开问题解决方法
- SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 出错。不同系统或者不同版本VS
- jQuery 1.4.2 getJSON() 不能正常工作的原因
- WatiN+Nunit在Win Server 2008 R2下不能正常工作的解决方法
- JBuilder的光标不能正常工作的问题!
- windows7 下SVN不能正常工作
- Unity3d的Input.location在ios8以上版本不能正常工作的解决方案
- iOS编程Cookbook第19章最后一个例子不能正常工作的解决办法
- node-readability不能正常工作
- VC6里改变对话框资源ID号后classwizard不能正常显示控件ID的原因及解决方法