请问GetSystemMetrics的参数(如SM_CXCURSOR)是在哪里声明的?

wwybj 2009-11-11 11:23:33
各位好,我初用vc不久,在代码中要用到GetSystemMetrics()函数来获取系统状态,这个函数的参数如SM_CXCURSOR、SM_CXBORDER、SM_CMOUSEBUTTONS之类的是在哪里声明的呢?我是用win32向导创建的项目,已经include了windows.h头文件,但是还是无法使用这些参数名,不知道他们是在哪里声明的?我google很久了都没找到,msdn上说include windows.h就行了,但是我还是会编译报错:

error C2065: “SM_CXCURSOR”: 未声明的标识符

我的IDE是VC++ Express 2008
操作系统为Windows 7 32b

多谢各位的解答!
...全文
248 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwybj 2009-11-12
  • 打赏
  • 举报
回复
已结贴
wwybj 2009-11-12
  • 打赏
  • 举报
回复
Problem solved. 不知道为什么,突然一下编译成功了…… 什么都没改,而且在winuser.h里面找到了这些声明……

光棍节的夜晚,很诡异……

多谢二位!
WaistCoat13 2009-11-12
  • 打赏
  • 举报
回复
#ifndef NOSYSMETRICS

/*
* GetSystemMetrics() codes
*/

#define SM_CXSCREEN 0
#define SM_CYSCREEN 1
#define SM_CXVSCROLL 2
#define SM_CYHSCROLL 3
#define SM_CYCAPTION 4
#define SM_CXBORDER 5
#define SM_CYBORDER 6
#define SM_CXDLGFRAME 7
#define SM_CYDLGFRAME 8
#define SM_CYVTHUMB 9
#define SM_CXHTHUMB 10
#define SM_CXICON 11
#define SM_CYICON 12
#define SM_CXCURSOR 13
#define SM_CYCURSOR 14
#define SM_CYMENU 15
#define SM_CXFULLSCREEN 16
#define SM_CYFULLSCREEN 17
#define SM_CYKANJIWINDOW 18
#define SM_MOUSEPRESENT 19
#define SM_CYVSCROLL 20
#define SM_CXHSCROLL 21
#define SM_DEBUG 22
#define SM_SWAPBUTTON 23
#define SM_RESERVED1 24
#define SM_RESERVED2 25
#define SM_RESERVED3 26
#define SM_RESERVED4 27
#define SM_CXMIN 28
#define SM_CYMIN 29
#define SM_CXSIZE 30
#define SM_CYSIZE 31
#define SM_CXFRAME 32
#define SM_CYFRAME 33
#define SM_CXMINTRACK 34
#define SM_CYMINTRACK 35
#define SM_CXDOUBLECLK 36
#define SM_CYDOUBLECLK 37
#define SM_CXICONSPACING 38
#define SM_CYICONSPACING 39
#define SM_MENUDROPALIGNMENT 40
#define SM_PENWINDOWS 41
#define SM_DBCSENABLED 42
#define SM_CMOUSEBUTTONS 43
WaistCoat13 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wwybj 的回复:]
我已经安装了SDK,windows.h和winuser.h也是在SDK中找到的
[/Quote]

你看的是哪个目录下的winuser.h文件?
wwybj 2009-11-12
  • 打赏
  • 举报
回复
你们的winuser.h里面,有对这些参数的声明吗?
wwybj 2009-11-12
  • 打赏
  • 举报
回复
我已经安装了SDK,windows.h和winuser.h也是在SDK中找到的
WaistCoat13 2009-11-12
  • 打赏
  • 举报
回复
我的VS2005在D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winuser.h中

按理说#include <winodws.h>就可以了,因为windows.h有包含winuser.h的代码


如果还不行建议装下SDK
wwybj 2009-11-11
  • 打赏
  • 举报
回复
我打开了winuser.h和windows.h,里面都没有看到有声明~
wltg2001 2009-11-11
  • 打赏
  • 举报
回复
#include windows.h后应该是可以的啊!而且VC2008应该不会有版本的问题啊!
要不干脆用13代替吧!这个API的定义好像是在Winuser.h中吧。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧