WINCE C#窗体最大化(隐藏状态栏)

public static bool SetFullScreen(bool fullscreen, ref Rectangle rectOld)
        {
            int Hwnd = 0;
            Hwnd = Win32.FindWindow("HHTaskBar", null);
            if (Hwnd == 0) return false;
            if (fullscreen)
            {
                Win32.ShowWindow((IntPtr)Hwnd, Win32.SW_HIDE);
                Rectangle rectFull = Screen.PrimaryScreen.Bounds;
                Win32.SystemParametersInfo(Win32.SPI_GETWORKAREA, 0, ref rectOld, Win32.SPIF_UPDATEINIFILE);//get
                Win32.SystemParametersInfo(Win32.SPI_SETWORKAREA, 0, ref rectFull, Win32.SPIF_UPDATEINIFILE);//set
            }
            else
            {
                Win32.ShowWindow((IntPtr)Hwnd, Win32.SW_SHOW);
                Win32.SystemParametersInfo(Win32.SPI_SETWORKAREA, 0, ref rectOld, Win32.SPIF_UPDATEINIFILE);
            }
            return true;
        }

 

public static bool SetFullScreen(bool fullscreen, ref Rectangle rectOld)
{
int Hwnd = 0;
Hwnd = Win32.FindWindow("HHTaskBar", null);
if (Hwnd == 0) return false;
if (fullscreen)
{
Win32.ShowWindow((IntPtr)Hwnd, Win32.SW_HIDE);
Rectangle rectFull = Screen.PrimaryScreen.Bounds;
Win32.SystemParametersInfo(Win32.SPI_GETWORKAREA, 0, ref rectOld, Win32.SPIF_UPDATEINIFILE);//get
Win32.SystemParametersInfo(Win32.SPI_SETWORKAREA, 0, ref rectFull, Win32.SPIF_UPDATEINIFILE);//set
}
else
{
Win32.ShowWindow((IntPtr)Hwnd, Win32.SW_SHOW);
Win32.SystemParametersInfo(Win32.SPI_SETWORKAREA, 0, ref rectOld, Win32.SPIF_UPDATEINIFILE);
}
return true;
}

 

public class Win32
{
    public const uint POWER_FORCE = 0x00001000u;
    public const uint POWER_STATE_RESET = 0x00800000u;        // reset state

    [DllImport("coredll.dll")]
    public static extern uint SetSystemPowerState([MarshalAs(UnmanagedType.LPWStr)]string psState, uint StateFlags, uint Options);

    [DllImport("coredll.dll", EntryPoint = "FindWindow")]

    public static extern int FindWindow(string lpWindowName, string lpClassName);
    [DllImport("coredll.dll", EntryPoint = "ShowWindow")]

    public static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
    [DllImport("coredll.dll", EntryPoint = "SystemParametersInfo")]
    public static extern int SystemParametersInfo(int uAction, int uParam, ref Rectangle lpvParam, int fuWinIni);

    public const int SPI_SETWORKAREA = 47;
    public const int SPI_GETWORKAREA = 48;

    public const int SW_HIDE = 0x00;
    public const int SW_SHOW = 0x0001;
    public const int SPIF_UPDATEINIFILE = 0x01;
}

 

隐藏的代码:

Rectangle rectangle = Screen.PrimaryScreen.Bounds;
SetFullScreen(true, ref rectangle);//false为恢复状态栏

 

posted @ 2012-08-29 20:08  James-ping  阅读(2937)  评论(0编辑  收藏  举报