我有一个childFrame带了一个scrollview,然后在childframe的cpp里用如下的语句,发现每次movewindow之后,frame再得到的client变小。
CRect rcClient(0,0,0,0);
GetClientRect( &rcClient ); //这是初始的client大小
MoveWindow( rcClient );
GetClientRect( &rcClient ); //这里再获得其client大小的时候,比刚开始的client要小。请问为什么?多谢

解决方案 »

  1.   

    GetClientRect得到的是客户区(不包括框架)的大小。
      

  2.   

    ls正解!
    GetClientRect应改为GetWindowRect
      

  3.   

    你的意思是GetClientRect得到的是客户区(不包括框架)的大小,但是movewindow中的rect是包括框架的大小,这样,每一次movewindow都会变小一次?如果改为GetWindowRect,得到的是针对screen的坐标,再用movewindow的话,还需要把其screen的坐标转换成客户的坐标。有没有什么方法方便转?改用setwindowpos的话,window的大小又没发生变化,唉,目前还没搞定。
      

  4.   

    ScreenToClient()函数可以转换屏幕坐标系和客户区坐标系
      

  5.   

    噢,忘了这个,只记得ClientToScreen,呵,好,俺先去试试。。