在CView::OnCreate()函数中,如果这样:
CRect rect;
GetClientRect(&rect);
就是rect.Width(),rect.Height()的返回值都为0,这是为什么啊?
那是CView已经创建了,怎么会为0呢?请知道的指教!

解决方案 »

  1.   

    OnCreate()里面,视图还没创建完呢
      

  2.   

    这时候窗口没创建好,要等到OnCreate()函数调用完成以后吧,
    换到别的地方试试当然可以手动添加消息,在OnCreate()中使用PostMessage()来响应自己的消息获取客户区的大小
      

  3.   

    如果在OnDraw之前得到客户区的大小,要怎么做呢?
      

  4.   

       没有得到大小的原因是onCreate()函数是用于在窗体创建之前,给用户留一个接口用于改变窗体的其他属性的,此时,窗体并没有创建,所有得不到VIEW的大小,如果想在onDraw()之前得到大小的话,可以在onInitUpdata()里面写代码,此函数调用时,所有的窗体己经创建完毕,留给用户在其中进一步初始化自己的内容.其实在onDraw()里面写也是一个好方法,不过最好判断一下,m_hWnd是否为空,然后再获取.
      

  5.   

    对啊,在onInitUpdata()是最好的了,谢谢啦。