MFC隐藏(去除)客户区的边框以及隐藏非客户区

来源:互联网 发布:原画网络培训 编辑:程序博客网 时间:2024/05/21 21:01

  我承认我被此问题困扰过,好在找到了解决方法,如下:

  1.在C****View::PreCreateWindow(CREATESTRUCT& cs)函数内增加:cs.style &= ~WS_BORDER; 

  2.在CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)函数内增加:ModifyStyleEx(WS_EX_CLIENTEDGE, 0, SWP_FRAMECHANGED);注意:要增加到OnCreate函数的最前面(即if (CFrameWnd::OnCreate(lpCreateStruct) == -1)前面)。

 

附1:网友解决办法:

----------------------------------------------------------------------------------------------------------------

先要去掉view的边框,代码如下:

然后在去掉外部Frame的客户区边框,代码如下:

----------------------------------------------------------------------------------------------------------------

 

 附2:隐藏非客户区的方法:

----------------------------------------------------------------------------------------------------------------

在MainFrm.cpp的OnCreate()函数中加上如下代码可以隐藏窗口的非客户区
ModifyStyle(WS_CAPTION|WS_THICKFRAME,   0,   SWP_DRAWFRAME);//函数的第一行
SetMenu(NULL);//第二行
m_wndToolBar.ShowWindow(SW_HIDE);//在toolbar.Create的下面一行
m_wndStatusBar.ShowWindow(SW_HIDE);//在m_wndStatusbar.Create下面一行
整个函数如下:

----------------------------------------------------------------------------------------------------------------