分辨率是1440*900的
CRect rect
GetClientRect(rect)//Height()==592
POINT c;  
GetCursorPos(&c);
CRect rect;
GetClientRect(&rect);
ScreenToClient(&c);
c.x;
c.y;
c{x=1036 y=322}
//注释掉ScreenToClient(&c);,是下面的坐标。
c{x=469 y=218}

解决方案 »

  1.   

    楼主到底吓什么了?c{x=1036 y=322}  这个坐标的的原点是你ScreenToClient所在this控件的左上角为0,0点的
    c{x=469 y=218}   这个坐标是的原点是你整个显示屏左上角为0,0点的
      

  2.   

    LZ没明白ScreenToClient()函数作用吗?未用此函数是得到的光标坐标c{x=469 y=218} 是屏幕坐标,是在整个屏幕的物理坐标,范围只能是 c{x=0,y=0}到 c{x=1440, y=900}。
    用了ScreenToClient()得到的是当前窗口的坐标,即c{x=1036 y=322} ,这个坐标没有范围,因为窗口可能有滚动条。
      

  3.   

    窗口切分出一个视图窗口,这个窗口是继承与CFormView的对话框//要这个对话框在任何屏幕下都定死的大小,其他切分窗口的大小随便变化...GetSystemMetrics(SM_CYSCREEN)//获取的值是900,
    CRect rect
    GetClientRect(rect)//Height()==592 //这592是物理大小????900-592=308 标题栏+边框+任务栏=308???
      

  4.   


    窗口切分出一个视图窗口,这个窗口是继承与CFormView的对话框//要这个对话框在任何屏幕下都定死的大小,其他切分窗口的大小随便变化...GetSystemMetrics(SM_CYSCREEN)//获取的值是900,
    CRect rect
    GetClientRect(rect)//Height()==592 //这592是物理大小????900-592=308 标题栏+边框+任务栏=308???
      

  5.   

    GetClientRect要看你当前视图对象的得出的Rect
      

  6.   

    592不是物理大小,是客户区窗口的大小
    如果你的客户窗口最大化,而且没有垂直滚动条的话应该可以这么计算。
    Height()的值为592,显然窗口没最大化
      

  7.   

    Height()的值为592,显然窗口没最大化//是最大化的!
    一般情况下显示器标题栏+边框+任务栏都是=308???
      

  8.   

    GetClientRect(&rect);
    ScreenToClient(&c); 
    ------------------
    ???
      

  9.   

    Height()的值为592,显然窗口没最大化//是最大化的!
    一般情况下显示器标题栏+边框+任务栏都是=308???貌似没这么大。