WEB开发网
开发学院软件开发VC MFC程序员的WTL指南(4)工具条与状态条 阅读

MFC程序员的WTL指南(4)工具条与状态条

 2006-07-22 22:03:37 来源:WEB开发网   
核心提示: BOOL CFrameWindowImpl::CreateSimpleStatusBar(LPCTSTR lpstrText,DWORD dwStyle = ... SBARS_SIZEGRIP,UINT nID = ATL_IDW_STATUS_BAR){ATLASSERT(!::IsW
BOOL CFrameWindowImpl::CreateSimpleStatusBar(
  LPCTSTR lpstrText,
  DWORD dwStyle = ... SBARS_SIZEGRIP,
  UINT nID = ATL_IDW_STATUS_BAR)
{
  ATLASSERT(!::IsWindow(m_hWndStatusBar));
  m_hWndStatusBar = ::CreateStatusWindow(dwStyle, lpstrText, m_hWnd, nID);
  return (m_hWndStatusBar != NULL);
}

这个重载的版本首先检查是否已经创建了状态条,然后调用CreateStatusWindow()创建状态条,状态条的句柄存放在m_hWndStatusBar中。

显示和隐藏工具条和状态条

CMainFrame类也有一个视图菜单,它有两个命令:显示/隐藏工具条和状态条,它们的ID是ID_VIEW_TOOLBAR和ID_VIEW_STATUS_BAR。CMainFrame类有这两个命令的响应函数,分别显示和隐藏相应的控制条,下面是OnViewToolBar()函数的代码:

LRESULT CMainFrame::OnViewToolBar(WORD /*wNotifyCode*/, WORD /*wID*/,
                 HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
  BOOL bVisible = !::IsWindowVisible(m_hWndToolBar);
  ::ShowWindow(m_hWndToolBar, bVisible ? SW_SHOWNOACTIVATE : SW_HIDE);
  UISetCheck(ID_VIEW_TOOLBAR, bVisible);
  UpdateLayout();
  return 0;
}

这些代码翻转控制条的显示状态,相应的翻转View|Toolbar菜单上的检查标记,然后调用UpdateLayout()重新定位控制条并改变视图窗口的大小。

工具条和状态条的内在特征

MFC的框架提供了很多好的特性,例如工具条按钮的工具提示和菜单项的掠过式帮助。WTL中相对应的功能实现在CFrameWindowImpl类中。下面的屏幕截图显示了工具提示和掠过式帮助。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:MFC 程序员 WTL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接