请问一下,如何在vc++6.0下获取屏幕大小和分辨率信息?
GetSystemMetrics(int index)此函数是做什么的?
int GetDeviceCaps(
  HDC hdc,     // handle to DC
  int nIndex   // index of capability
);
函数做什么的?返回的是什么东西?

解决方案 »

  1.   

    这个API可以做的事多了,主要查询一些与显示有关的信息,具体返回什么和参数nIndex有关,下面是nIndex的一些取值:
    SM_ARRANGE Flags specifying how the system arranged minimized windows. For more information about minimized windows, see the following Res section.  SM_CLEANBOOT 返回系统启动方式:  0 正常启动  1 安全模式启动  2 网络安全模式启动  SM_CMOUSEBUTTONS 返回值为系统支持的鼠标键数,返回0,则系统中没有安装鼠标。  SM_CXBORDER,  SM_CYBORDER 返回以相素值为单位的Windows窗口边框的宽度和高度,如果Windows的为3D形态,则  等同于SM_CXEDGE参数  SM_CXCURSOR,  SM_CYCURSOR 返回以相素值为单位的标准光标的宽度和高度  SM_CXDLGFRAME,  SM_CYDLGFRAME 等同与SM_CXFIXEDFRAME and SM_CYFIXEDFRAME  SM_CXDOUBLECLK,  SM_CYDOUBLECLK 以相素值为单位的双击有效的矩形区域  SM_CXEDGE,SM_CYEDGE 以相素值为单位的3D边框的宽度和高度  SM_CXFIXEDFRAME,  SM_CYFIXEDFRAME 围绕具有标题但无法改变尺寸的窗口(通常是一些对话框)的边框的厚度  SM_CXFRAME,SM_CYFRAME 等同于SM_CXSIZEFRAME and SM_CYSIZEFRAME  SM_CXFULLSCREEN,  SM_CYFULLSCREEN 全屏幕窗口的窗口区域的宽度和高度  SM_CXHSCROLL,  SM_CYHSCROLL 水平滚动条的高度和水平滚动条上箭头的宽度  SM_CXHTHUMB 以相素为单位的水平滚动条上的滑动块宽度  SM_CXICON,SM_CYICON 系统缺省的图标的高度和宽度(一般为32*32)  SM_CXICONSPACING,  SM_CYICONSPACING 以大图标方式查看Item时图标之间的间距,这个距离总是大于等于  SM_CXICON and SM_CYICON.  SM_CXMAXIMIZED,  SM_CYMAXIMIZED 处于顶层的最大化窗口的缺省尺寸  SM_CXMAXTRACK,  SM_CYMAXTRACK 具有可改变尺寸边框和标题栏的窗口的缺省最大尺寸,如果窗口大于这个  尺寸,窗口是不可移动的。  SM_CXMENUCHECK,  SM_CYMENUCHECK 以相素为单位计算的菜单选中标记位图的尺寸  SM_CXMENUSIZE,  SM_CYMENUSIZE 以相素计算的菜单栏按钮的尺寸  SM_CXMIN,SM_CYMIN 窗口所能达到的最小尺寸  SM_CXMINIMIZED,  SM_CYMINIMIZED 正常的最小化窗口的尺寸  SM_CXMINTRACK,  SM_CYMINTRACK 最小跟踪距离,当使用者拖动窗口移动距离小于这个值,窗口不会移动。  SM_CXSCREEN,  SM_CYSCREEN 以相素为单位计算的屏幕尺寸。  SM_CXSIZE,SM_CYSIZE 以相素计算的标题栏按钮的尺寸  SM_CXSIZEFRAME,  SM_CYSIZEFRAME 围绕可改变大小的窗口的边框的厚度  SM_CXSMICON,  SM_CYSMICON 以相素计算的小图标的尺寸,小图标一般出现在窗口标题栏上。  M_CXVSCROLL,  SM_CYVSCROLL 以相素计算的垂直滚动条的宽度和垂直滚动条上箭头的高度  SM_CYCAPTION 以相素计算的普通窗口标题的高度  SM_CYMENU 以相素计算的单个菜单条的高度  SM_CYSMCAPTION 以相素计算的窗口小标题栏的高度  SM_CYVTHUMB 以相素计算的垂直滚动条中滚动块的高度  SM_DBCSENABLED 如果为TRUE或不为0的值表明系统安装了双字节版本的USER.EXE,为FALSE或0则不是。  SM_DEBUG 如果为TRUE或不为0的值表明系统安装了debug版本的USER.EXE,为FALSE或0则不是。  SM_MENUDROPALIGNMENT 如果为TRUE或不为0的值下拉菜单是右对齐的否则是左对齐的。  SM_MOUSEPRESENT 如果为TRUE或不为0的值则安装了鼠标,否则没有安装。  SM_MOUSEWHEELPRESENT 如果为TRUE或不为0的值则安装了滚轮鼠标,否则没有安装。(Windows NT only)  SM_SWAPBUTTON 如果为TRUE或不为0的值则鼠标左右键交换,否则没有。
      

  2.   

    int     nWidth=GetSystemMetrics(SM_CXSCREEN);  //屏幕宽度    
    int     nHeight=GetSystemMetrics(SM_CYSCREEN); //屏幕高度
    GetDeviceCaps函数获取设备指定的信息,如3楼      
      

  3.   

    int with= GetSystemMetrics(SM_CXFULLSCREEN);
      int heigh= GetSystemMetrics(SM_CYFULLSCREEN);
    通过上边两个函数获取的是显示屏幕的大小,及不包括任务栏等区域。
     
      int   cx   =   GetSystemMetrics(   SM_CXSCREEN   );   
      int   cy   =   GetSystemMetrics(   SM_CYSCREEN   );
    这两个函数获取的是真正屏幕的大小