在Frame上建了个VIEW,总有个边框,我觉得是VIEW弄出来的框框。搞了好久也没搞定。
PreCreateWindow(CREATESTRUCT& cs);里面都该了Styl都没用。贴点代码出来。Frame style的修改
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWndEx::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
//  CREATESTRUCT cs 来修改窗口类或样式
cs.hMenu = NULL;
cs.style = WS_POPUP;
cs.dwExStyle = 0;
return TRUE;
}
VIEW style的修改
BOOL CParentView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class WS_EX_CLIENTEDGE WS_EX_WINDOWEDGE

cs.style &= ~WS_BORDER;//这里设置成0,都没用
cs.dwExStyle &= ~WS_EX_CLIENTEDGE;//这里执行了 cs.dwExStyle == 0
cs.dwExStyle &= ~WS_EX_WINDOWEDGE; return CView::PreCreateWindow(cs);
}

解决方案 »

  1.   

    可以试试这个方法ModifyStyle(WS_CAPTION,0,0);
    int x = GetSystemMetrics(SM_CXSCREEN);   //获取屏幕X像素
    int y = GetSystemMetrics(SM_CYSCREEN);   //获取屏幕Y像素

    RECT rectDesktop;
    WINDOWPLACEMENT wpNew;
    WINDOWPLACEMENT m_wpPrev;

    GetWindowPlacement(&m_wpPrev);

    ::GetWindowRect(::GetDesktopWindow(),&rectDesktop);
    ::AdjustWindowRectEx(&rectDesktop, GetStyle(), FALSE, GetExStyle());

    wpNew = m_wpPrev;
    wpNew.showCmd = SW_SHOWNORMAL;
    wpNew.rcNormalPosition = rectDesktop;



    SetWindowPlacement ( &wpNew );
      

  2.   

    要改2个:
    SDI mainframe的cs风格:
    cs.style = WS_OVERLAPPED| WS_MINIMIZEBOX | WS_SYSMENU;
    cs.dwExStyle &= ~WS_EX_CLIENTEDGE;view的cs风格:
    cs.style &= ~WS_BORDER;
      

  3.   

    要改2个:
    SDI mainframe的cs风格:
    cs.style = WS_OVERLAPPED| WS_MINIMIZEBOX | WS_SYSMENU;
    cs.dwExStyle &= ~WS_EX_CLIENTEDGE;view的cs风格:
    cs.style &= ~WS_BORDER;
    ----------------------
    这样改是不行的,我的代码里
    cs.style = WS_POPUP;
    cs.dwExStyle = 0;
    都没用啊。
      

  4.   

    你在设置大小时候, 不要用CW_USEDEFULD  就可以了,自己设置数值改变大小..
      

  5.   

    先用spy++看看有边框的窗口都有什么属性
    有些边框可能不是WS_EX_CLIENTEDGE造成的
    而且WS_EX_CLIENTEDGE可能会在PreCreateWindow之后重新设置
    如果确定是某些属性导致的
    你可以在OnCreate中PostMessage一个自定义消息来移除这些属性
      

  6.   


    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
    // CREATESTRUCT cs 来修改窗口类或样式
    //风格的修改放到前面
    cs.hMenu = ……;
    cs.style = ……;
    cs.dwExStyle = ……;if( !CFrameWndEx::PreCreateWindow(cs) )
    return FALSE;
    // TODO: 在此处通过修改
    return TRUE;
    }Changing the Styles of a Window Created by MFC