GetClientRect
和屏幕分辨率有什么直接的关系吗

解决方案 »

  1.   

    获得屏幕分辨率用GetSystemMetrics,参数SM_CXSCREEN, SM_CYSCREEN
      

  2.   

    没关系,就是返回窗口的实际像素数
    windows的分辨率是整个屏幕的像素数,从视觉效果上来看,改变分辨率之后,相同像素数的窗口,在屏幕上的相对大小会变化(但绝对像素数是一样的)
      

  3.   

    GetClientRect只是获得程序中客户区的大小。程序的边框、标题条、工具条,状态条等都不包括的。 
    获得屏幕分辨率大小用 
    int xSize = ::GetSystemMetrics(SM_CXSCREEN); 
    int ySize = ::GetSystemMetrics(SM_CYSCREEN); 
    或者: 
     CRect   rect;   
     ::GetWindowRect(::GetDesktopWindow(),&rect);
    通常,如果你的窗口不是全屏显示的,通过GetClientRect得到的值和屏幕分辨率都是不等的,上面已经说明了原由。