SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 出错。不同系统或者不同版本VS
来源:互联网 发布:mysql count 性能 编辑:程序博客网 时间:2024/05/15 04:44
最新看到的是百度上的解答:
http://hi.baidu.com/vc_net/item/b8c5f761f70b9290c4d2494b
另外MSDN的介绍
- typedef struct tagNONCLIENTMETRICS { UINT cbSize; int iBorderWidth; int iScrollWidth; int iScrollHeight; int iCaptionWidth; int iCaptionHeight; LOGFONT lfCaptionFont; int iSmCaptionWidth; int iSmCaptionHeight; LOGFONT lfSmCaptionFont; int iMenuWidth; int iMenuHeight; LOGFONT lfMenuFont; LOGFONT lfStatusFont; LOGFONT lfMessageFont;#if (WINVER >= 0x0600) int iPaddedBorderWidth;#endif } NONCLIENTMETRICS, *LPNONCLIENTMETRICS;
应该这个样子:
- C/C++ code
- nm.cbSize = sizeof (NONCLIENTMETRICS) - sizeof(nm.iPaddedBorderWidth);// 这个是高版本.通常所说的VISTA版本 WINVEE >= 0x0600nm.cbSize = sizeof (NONCLIENTMETRICS) ; // 这个是低版本,通常所说的0x0501
或者在stdafx.h加入
#define WINVER 0x0501 // 关键:将此值更改为相应的值,以适用于 Windows 的其他版本。#define _WIN32_WINNT 0x0600 // 响应鼠标滚轮需要#define _WIN32_IE 0x0600 /*IE 6.0*/
所以在C/C++中使用过程具体如下:
NONCLIENTMETRICS nm;nm.cbSize = sizeof (NONCLIENTMETRICS);// Vista版本要减去 sizeof(nm.iPaddedBorderWidth);VERIFY (SystemParametersInfo (SPI_GETNONCLIENTMETRICS,nm.cbSize,&nm,0));
- SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 出错。不同系统或者不同版本VS
- 换不同ffmpeg SDK版本后出错
- 共享不同系统版本打印机
- SystemParametersInfo (SPI_GETNONCLIENTMETRICS ... 返回false的原因分析
- iOS 根据不同的系统版本加载不同图片方法
- JDk版本不同对系统的影响
- Windows系统不同SVN版本对比
- 不同系统版本下获取唯一标示
- Windows系统不同SVN版本对比
- Mac 系统不同jdk版本切换方法
- Mac系统不同jdk版本切换方法
- Android适配不同的系统版本
- 不同OpenCV版本和不同VS版本之间配置时的注意事项
- 不同OpenCV版本和不同VS版本之间进行配置的注意事项
- 解决不同版本opencv链接库出错问题
- 使用VS配置管理器实现不同版本的输出
- allowDefinition='MachineToApplication' 不同版本vs产生的问题
- VS编译时源代码与原始版本不同的解决办法
- 固件升级 android启动 uboot启动 rom制作
- Java获取用户的输入
- win7 64位操作系统为acess数据库配置ODBC数据源
- 连接mysql出现2002错误 mysqldump
- Open Source 精萃
- SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 出错。不同系统或者不同版本VS
- 20120816-WinMain函数
- STL中改变map的默认比较方式
- JavaScript的单线程性质以及定时器的工作原理
- Android架构详解
- 设计模式之观察者模式(二)
- HDU 4374 单调队列优化 DP
- Ubuntu下的环境变量LD_LIBRARY_PATH
- OGRE轨迹动画