#define NUMLINES ((int)(sizeof(sysmetrics)/sizeof (sysmetrics[0])))
#include<windows.h>
 struct 
{
int Index;
TCHAR * szLable;
TCHAR * szDesc;
}
sysmetrics [] =
{
SM_CXSCREEN, TEXT ("SM_CXSCREEN"),
TEXT ("Screen width in pixels"),
SM_CYSCREEN, TEXT ("SM_CYSCREEN"),
TEXT ("Screen height in pixels"),
SM_CXVSCROLL, TEXT ("SM_CXVSCROLL"),
TEXT ("Vertical scroll width"),
SM_CYHSCROLL, TEXT ("SM_CYHSCROLL"),
TEXT ("Horizontal scroll height"),
SM_CYCAPTION, TEXT ("SM_CYCAPTION"),在windows程序设计第五版看到这段代码
我想问sysmetrics是在哪里定义的?

解决方案 »

  1.   

    struct  
    {
    int Index;
    TCHAR * szLable;
    TCHAR * szDesc;
    }
    sysmetrics这不就是定义么?
      

  2.   

    不是应该这样么? sysmetrics []跟前面的struct怎么关联起来啊?struct  sysmetrics
    {
    int Index;
    TCHAR * szLable;
    TCHAR * szDesc;
    }
    sysmetrics [] =
      

  3.   

    还记得struct 定义最后的右括号不是有个引号吗??你看看书上的,是不是最后的定义有个右引号??那你懂了吧??其实sysmetric就是关联struct那个定义,定义多了,来个数组而已
      

  4.   

    在winuser.h宏里定义的,代码中的结构体只是方便使用,包装了一下。
    GetSystemMetrics (sysmetrics[i].Index) ;
    可以得到其具体的值。
    SM_就是SystemMetrics的简写。
    在编译器里右键点一个变量,转到定义,参考就行了