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

移动开发:使用 shFullScreen API 显示隐藏开始图标

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.20/5 (2投票s)

2014年3月27日

CPOL
viewsIcon

9284

移动开发:使用 shFullScreen API 显示隐藏开始图标

有时候,我们寻找简单事情的方法时,却忘记了它有多么容易。

问题:如何在 Windows Mobile 6.1(及更早版本)的任务栏中隐藏/显示开始图标?

答案:使用微软提供的 API:SHFullScreen! 无需使用 FindWindow 和子类化,使用起来非常简单。

请记住,这在 Windows Embedded Handheld 6.5.3 或 Windows Mobile 6.5.3 或任何你称呼它的版本上将不起作用。 该 API 将不会执行其功能。

这里有一个 C# 示例,用于 SHFullScreen 的使用。

创建一个类文件(例如,SHFullScreen.cs)并插入以下内容

using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;

namespace KioskTest
{
    public class SHAPI
    {
        public const int SHFS_SHOWTASKBAR = 1;
        public const int SHFS_HIDETASKBAR = 2;
        public const int SHFS_SHOWSIPBUTTON = 4;
        public const int SHFS_HIDESIPBUTTON = 8;
        public const int SHFS_SHOWSTARTICON = 16;
        public const int SHFS_HIDESTARTICON = 32;

        [DllImport("aygshell.dll")]
        private extern static bool SHFullScreen(IntPtr hWnd, int dwState);

        public static bool showStart(IntPtr wHandle, bool bShowHide)
        {
            bool bRet = false;
            IntPtr hwnd = wHandle;
            if (!bShowHide)
                bRet = SHFullScreen(hwnd, SHFS_HIDESTARTICON);
            else
                bRet = SHFullScreen(hwnd, SHFS_SHOWSTARTICON);
            return bRet;
        }

        public static bool FullScreen(IntPtr hWnd)
        {
            return SHFullScreen(hWnd, SHFS_HIDESTARTICON | SHFS_HIDETASKBAR);
        }
    }
}

现在在你的窗体代码中,只需使用以下调用来隐藏开始图标

    KioskTest.SHAPI.showStart(this.Handle, false);

就这样,请看这里

with_starticon without_starticon

对于这个简单的示例,没有完整的项目源代码。

玩得开心!

© . All rights reserved.