PocketPC 2002 中的多个工具栏






4.90/5 (9投票s)
处理多个工具栏 - Pocket Word 风格。
引言
本文介绍了一种在 PocketPC 2002 应用程序中实现多个工具栏的方法。这个想法源于 Embedded/Mobile 消息板上的一个讨论,其中寻求这种功能,特别是像 Pocket Word 那样的工具栏管理方式( https://codeproject.org.cn/script/comments/forums.asp?forumid=13695#xx435722xx)。
实现
演示项目(如上图所示)有两个工具栏,它们通过主命令栏中的命令来隐藏或显示。注意:演示项目旨在说明工具栏的工作原理,因此在其上没有实现任何功能。
两个工具栏都在 CMainFrame::OnCreate
中创建,没有使用 WS_VISIBLE
样式。当用户发出显示工具栏的命令时,窗口会显示,并且使用 RecalcLayout
重新定位框架内的所有内容。
void CMainFrame::OnToolbarFormat() { CToolBarCtrl& rToolBar = m_wndCommandBar.GetToolBarCtrl(); m_bFormat = !m_bFormat; m_wndFormat.ShowWindow(m_bFormat ? SW_SHOW : SW_HIDE); RecalcLayout(); rToolBar.CheckButton(ID_TOOLBAR2, m_bFormat); }
请注意,演示程序中没有 ON_UPDATE_COMMAND_UI
处理程序。主命令栏按钮的选中和取消选中是在此消息处理程序中显式完成的。
关于 CToolBar
的最后说明:我没有找到让它正确绘制顶部边框的方法,因此我派生了一个名为 CCeToolBar
的虚拟类,其唯一目的是绘制顶部边框。如果还有更好的方法来实现这一点,请在此处发布。