MFC教程(13)-MFC工具条和状态栏(2)
2007-10-04 20:11:26 来源:WEB开发网核心提示:处理状态条的过程类似于工具条的处理,ShowControlBar是CFrameWnd的成员函数,MFC教程(13)-MFC工具条和状态栏(2)(10),参数1表示控制条对象指针,参数2表示显示(TRUE)或者隐藏(FALSE),指明在边框窗口的哪边接受泊位,如果想在任何边都可以泊位,参数3表示是立即显示(FALSE)或
处理状态条的过程类似于工具条的处理。
ShowControlBar是CFrameWnd的成员函数,参数1表示控制条对象指针,参数2表示显示(TRUE)或者隐藏(FALSE),参数3表示是立即显示(FALSE)或者延迟显示(TRUE)。
如果工具条或者状态条被隐藏,则相应的菜单项ID_VIEW_STATUS_BAR 或者ID_VIEW_TOOLBAR 变成uncheked(菜单项被标记为没有选择),否则,checked(菜单项被标记选择)。CFrameWnd实现了这两个菜单项的状态更新处理,列举其中一个如下:
声明处理ID_VIEW_TOOLBAR的状态更新消息:
ON_UPDATE_COMMAND_UI(ID_VIEW_TOOLBAR, OnUpdateControlBarMenu)
函数的实现:
void CFrameWnd::OnUpdateControlBarMenu(CCmdUI* pCmdUI)
{
ASSERT(ID_VIEW_STATUS_BAR ==
AFX_IDW_STATUS_BAR);
ASSERT(ID_VIEW_TOOLBAR == AFX_IDW_TOOLBAR);
CControlBar* pBar = GetControlBar(pCmdUI->m_nID);
//存在工具栏
if (pBar != NULL)
{
//工具条窗口被显示则checked,被隐藏则uncheked
pCmdUI->SetCheck((pBar->GetStyle() & WS_VISIBLE) != 0);
return;
}
pCmdUI->ContinueRouting();
}
GetControlBar是CFrameWnd的成员函数,用来返回边框窗口的指定ID的控制条对象(指定ID是控制条的子窗口ID)。
泊位和漂浮
工具条可以泊位在边框窗口的任一边(上、下、左、右),或者漂浮在屏幕上的任何地方。
实现泊位的方法
首先,边框窗口调用CFrameWnd::EnableDocking函数使控制条泊位在边框窗口中有效,指明在边框窗口的哪边接受泊位。如果想在任何边都可以泊位,则使用参数CBRS_ALIGN_ANY。
更多精彩
赞助商链接