65.9K
CodeProject 正在变化。 阅读更多。
Home

PocketPC 2002 中的多个工具栏

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.90/5 (9投票s)

2003年3月17日

CPOL

1分钟阅读

viewsIcon

117772

downloadIcon

291

处理多个工具栏 - Pocket Word 风格。

Sample Image - CeMultiBar.jpg

引言

本文介绍了一种在 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 的虚拟类,其唯一目的是绘制顶部边框。如果还有更好的方法来实现这一点,请在此处发布。

© . All rights reserved.