【问题标题】:Customizing/Replacing the Windows CE 5.0 Taskbar?自定义/替换 Windows CE 5.0 任务栏?
【发布时间】:2009-04-14 04:48:00
【问题描述】:

我目前正在使用 Win CE 5.0 来更新现有平台上的一些代码。我们也有兴趣部署自定义外壳/主屏幕/应用程序启动器,我有几个问题:

1) 我们正在运行标准 CE shell,我假设它可以自定义,因为源代码可通过 Platform Builder 获得。我想知道用屏幕顶部的状态栏之类的东西完全替换它会有多“痛苦”(想想 iPhone)。我在想任务切换可以由快捷键专门处理。我对此表示怀疑。

2) 如果无法移除,是否可以调整任务栏的大小并将其移至屏幕顶部?我们基本上是想找到一种方法,将屏幕顶部的前 20 左右像素行保留给我们自己的状态栏,并防止最大化的应用程序窗口在其上方绘制。

非常感谢您的帮助。

-ksudeadeye

【问题讨论】:

    标签: windows-ce taskbar


    【解决方案1】:

    当我找到解决方案时,我既高兴又生气,因为它比我预期的要容易。 对于 2) 保留空间,您需要这样做:

    RECT rc;
    SetRect(&rc, 0, 25, GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));
    SystemParametersInfoW(SPI_SETWORKAREA, 0, (void*) &rc, SPIF_SENDCHANGE);
    

    使用此代码,您可以在屏幕顶部保留 25 个像素。 :D

    如果您有疑问,也许this 可以帮助您或this。

    祝你好运。

    【讨论】:

    • 我们最终在开发过程中也找到了 SPI_SETWORKAREA 标志,但花了一些时间。希望这会让其他人免于头疼。谢谢。 :)
    【解决方案2】:

    隐藏任务栏是一个简单的注册表更改:

    ; Hide the windows tasbar by default.
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\AutoHide]
    ""=dword:1
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\OnTop]
    ""=dword:0 
    

    至于自定义,您自己的,这需要更多的工作,而不是我尝试过的。

    【讨论】:

      【解决方案3】:

      我有一些在 CE 5.0 中修改任务栏的经验。这不是一件容易的事,但结果确实可以为设备增添个人风格。我的任务是添加一个用户模式的第二个任务栏,其中包含一个密码对话框和第二个类型的 shell 通知,以将图标添加到用户栏。

      归根结底,它只是标准的 Windows CE 编程——任务栏、通知托盘、开始按钮等就像 CE 环境中的任何其他窗口一样。

      您应该从这里开始探索: C:\WINCE500\PUBLIC\SHELL\OAK\HPC\EXPLORER\TASKBAR\taskbar.cpp

      请小心,克隆您的代码,并为大量的调试周期做好准备。这是超过 5000 行严重的意大利面条代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-23
        • 1970-01-01
        • 1970-01-01
        • 2014-02-04
        • 1970-01-01
        • 2012-01-21
        • 2011-09-28
        相关资源
        最近更新 更多