分类: C/C++
2008-08-30 14:10:16
如何去掉浮动工具条中的“关闭”按钮
BOOL IsFloating() const;在新类中添加一个成员变量,用它表示“关闭”按钮的状态: BOOL m_bMenuRemoved;当我们去掉主框架的系统菜单属性时,它的值为TRUE。 接着,我们需要一个m_pDockBar成员父窗口的指针,以便检查它是否确实为CDockFrameWnd,此时我们用到了 m_pDockBar,用它来判断父窗口类型,注意保证它是一个有效指针。这样我们就可以放心地从CToolBar中去掉系统菜单。下面是处理ON_WM_WINDOWPOSCHANGED消息的代码: void CToolBarEx::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos) { CToolBar::OnWindowPosChanged(lpwndpos); // should only be called once, when floated. if( IsFloating() ) { if( m_pDockBar && !m_bMenuRemoved ) { CWnd* pParent = m_pDockBar->GetParent(); if( pParent->IsKindOf(RUNTIME_CLASS(CMiniFrameWnd))) { pParent->ModifyStyle( WS_SYSMENU, 0, 0 ); m_bMenuRemoved = TRUE; } } } else if( m_bMenuRemoved ) { m_bMenuRemoved = FALSE; } }下图是最终的运行结果图: 图二 |