Client和Window区域是可以指定
但要GetClientRect和GetWindowRect 返回不同的值是什么意思?他们本来就返回不同,一个相对于窗口,一个相对于屏幕.而且这两个都不是虚函数,你的类是派生的也没有用.
如果仅仅是想让其与默认取的值不同,关于GetWindowRect,你可以改变映射模式,但好象没什么意义.听听...

解决方案 »

  1.   

    正如楼上那位同志所言,这两块区域本来就不等.
    设置客户区大小可用下面这个函数,比如pYourWnd->SetWindowPos(NULL, 10, 10, 20, 20, SWP_NOZORDER);BOOL CWnd::SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );第一个参数指出本窗口在哪个窗口的下层,可用wndTop将本窗口设在上层,
    其中的x,y和cx,cy分别是左上角座标和宽高.
    最后一个参数设为SWP_NOZORDER则可忽略第一个参数的设置.
      

  2.   

    to 以上各位:
        我是想知道如何來設定自已派生的窗口類的Client rect. 
        比如: CFrameWnd的Window Rect是包括Caption、Menu、框架等,而Client Rect只有中間的CView區域(不考慮相對坐標).我如何才能做到這一點。
        Ex:我從CWnd派生一個窗口,然后在其周圍畫上3d框,而這時,我想當Call GetWindowRect時返回的rect是不包括3d框的該怎么做?
      

  3.   

       客户区大小应该是由Windows内部默认的,不应该由用户指定,你要建立自己的"客户区"可以自己在程序中实现,定义自己的GetClientRect,根据自己设定的区域,处理OnPaint(),这是我个人的意见,不一定正确。
      

  4.   

    to farland:
         可是還有一些相關的如: CClientDC這些,難道都要自已來做嗎? 我可不是只為了GetClientRect()一個,而是實現真正的ClientRect。