CDockablePane without Close button
-
hi all, I want to remove the 'X' close button from the DockablePane. But i want the Autohide button to be there .. Is there any way to do it?? Thanks in Advance Regards Samir Satardekar
That is easy! There has two space to do this. For example, you derive a class CFileViewWnd from CDockablePane. Create an instance. CFileViewWnd m_wndFileView; 1. When you create the pane.use this. The default create method is virtual BOOL CreateEx(DWORD dwStyleEx, LPCTSTR lpszCaption, CWnd* pParentWnd, const RECT& rect, BOOL bHasGripper, UINT nID, DWORD dwStyle, DWORD dwTabbedStyle = AFX_CBRS_REGULAR_TABS, DWORD dwControlBarStyle = AFX_DEFAULT_DOCKING_PANE_STYLE, CCreateContext* pContext = NULL); the AFX_DEFAULT_DOCKING_PANE_STYLE defined is static const DWORD AFX_DEFAULT_DOCKING_PANE_STYLE = AFX_CBRS_FLOAT | AFX_CBRS_CLOSE | AFX_CBRS_RESIZE | AFX_CBRS_AUTOHIDE; So, you can remove the create flags "AFX_CBRS_CLOSE" like this. m_wndFileView.Create( strFileViewWnd, this, CRect( 0, 0, 200, 200 ), TRUE, ID_PANE_FILEVIEW_WND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI, AFX_CBRS_REGULAR_TABS, AFX_CBRS_FLOAT | AFX_CBRS_RESIZE | AFX_CBRS_AUTOHIDE ) ) It's OK! 2. Use the method GetControlBarStyle() and SetControlBarStyle( dwStyle ) DWORD dwStyle = m_wndFileView.GetControlBarStyle(); dwStyle &= ~( AFX_CBRS_CLOSE | AFX_CBRS_FLOAT ); m_wndFileView.SetControlBarStyle( dwStyle ); It's OK ! Enjoy It ! http://blog.csdn.net/laiboy
-
That is easy! There has two space to do this. For example, you derive a class CFileViewWnd from CDockablePane. Create an instance. CFileViewWnd m_wndFileView; 1. When you create the pane.use this. The default create method is virtual BOOL CreateEx(DWORD dwStyleEx, LPCTSTR lpszCaption, CWnd* pParentWnd, const RECT& rect, BOOL bHasGripper, UINT nID, DWORD dwStyle, DWORD dwTabbedStyle = AFX_CBRS_REGULAR_TABS, DWORD dwControlBarStyle = AFX_DEFAULT_DOCKING_PANE_STYLE, CCreateContext* pContext = NULL); the AFX_DEFAULT_DOCKING_PANE_STYLE defined is static const DWORD AFX_DEFAULT_DOCKING_PANE_STYLE = AFX_CBRS_FLOAT | AFX_CBRS_CLOSE | AFX_CBRS_RESIZE | AFX_CBRS_AUTOHIDE; So, you can remove the create flags "AFX_CBRS_CLOSE" like this. m_wndFileView.Create( strFileViewWnd, this, CRect( 0, 0, 200, 200 ), TRUE, ID_PANE_FILEVIEW_WND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI, AFX_CBRS_REGULAR_TABS, AFX_CBRS_FLOAT | AFX_CBRS_RESIZE | AFX_CBRS_AUTOHIDE ) ) It's OK! 2. Use the method GetControlBarStyle() and SetControlBarStyle( dwStyle ) DWORD dwStyle = m_wndFileView.GetControlBarStyle(); dwStyle &= ~( AFX_CBRS_CLOSE | AFX_CBRS_FLOAT ); m_wndFileView.SetControlBarStyle( dwStyle ); It's OK ! Enjoy It ! http://blog.csdn.net/laiboy
works fine but when typing Alt+F4, the Pane closes if floating, how to avoid this ?