1. 程式人生 > >MFC隱藏(去除)客戶區的邊框以及隱藏非客戶區

MFC隱藏(去除)客戶區的邊框以及隱藏非客戶區

  我承認我被此問題困擾過,好在找到了解決方法,如下:

  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下面一行
整個函式如下:

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