分类: 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;
}
} 下图是最终的运行结果图: 图二 |