Bool CView::PreCreateWindow(...)
{
    if(!CView::PreCreateWindow(cs))
        return false;
    
    cs.dwExStyle &= ~WS_EXCLIENTEDGE;
    return true;
}上面的代码是消除视图和子框架中的边框,但我不明白的是将
    cs.dwExStyle &= ~WS_EXCLIENTEDGE; 放在
    if(!CView::PreCreateWindow(cs))
        return false;
前和放在后执行的效果不一样。放在前面时不能消除边框。只有放在后面时才能消除边框。请问放在前后有什么区别吗??

解决方案 »

  1.   

    你的代码是不是有问题啊!怎么CView::PreCreateWindow里调用CView::PreCreateWindow呢?应该是放在后面的,因为需要先调用基类的CView::PreCreateWindow函数完成窗口属性设置,
    建立好后再用cs.dwExStyle &= ~WS_EXCLIENTEDGE; 将相应的风格去掉。
      

  2.   

    上面的Bool CView::PreCreateWindow(...)
    我将CView简写了.是CMyView....为什么是在后面呢在后面才设置CS,而没有再调用基类的PreCreateWindow()但仍然起作用为什么?
      

  3.   

    如果先设置cs.dwExStyle &= ~WS_EXCLIENTEDGE
    后面再调用CView::PreCreateWindow(...)
    又会设为默认风格了,就是覆盖掉你的cs.dwExStyle &= ~WS_EXCLIENTEDGE
    设置
      

  4.   

    调用CView::PreCreateWindow( cs )是把窗口属性设为默认值。
    所以先调用CView::PreCreateWindow(....),再自定属性。
      

  5.   

    这么说Bool CView::PreCreateWindow(...)
    {   
        cs.dwExStyle &= ~WS_EXCLIENTEDGE;
        return true;
    }这样就可以改变窗口风格啦?只要有 return true就可以了对吗?
      

  6.   

    你是重载CView::PreCreateWindow函数,连重载你都不调用,你干啥