WINCE 程序运行全屏,隐藏状态栏操作

实现方式很简单,你需要完成如下操作。

1,设置页面的属性用来隐藏标题栏。

this.WindowState = System.Windows.Forms.FormWindowState.Maximized; 

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;



2,使用P/Invoke调用WIN32API进行隐藏状态栏 API调用类:

 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;
}

 

 调用方法 

   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;
}



使用方法:

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

 

将此方法加在程序窗体的基类OnLoad方法里面,程序运行时处于WINCE全屏状态,在程序退出的方法中调用SetFullScreen(false, ref rectangle)用来在关闭程序后恢复状态栏。WINCE下,隐藏了状态栏之后连同输入法栏也会被隐藏,如果程序需要打开软键盘,那就需要另想办法了。

你可能感兴趣的:(WinCE)