zoukankan      html  css  js  c++  java
  • WinForm调用user32.dll实现全屏

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace WinFormExample
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    //Boolean IsFullScreen = false;

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    #region user32.dll

    public const Int32 SPIF_UPDATEINIFILE = 0x1;

    public const Int32 SPI_SETWORKAREA = 47;

    public const Int32 SPI_GETWORKAREA = 48;

    public const Int32 SW_SHOW = 5;

    public const Int32 SW_HIDE = 0;

    [DllImport("user32.dll", EntryPoint = "ShowWindow")]
    public static extern Int32 ShowWindow(Int32 int1, Int32 int2);

    [DllImport("user32.dll", EntryPoint = "FindWindow")]
    public static extern Int32 FindWindow(string str1, string str2);

    [DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
    public static extern Int32 SystemParametersInfo(Int32 int1, Int32 int2, ref Rectangle ref1, Int32 int3);

    #endregion

    public Boolean SetFullScreen(Boolean b)
    {
    Rectangle rectOld = Rectangle.Empty;

    Int32 int1 = 0;

    int1 = FindWindow("Shell_TrayWnd", null);

    if (int1 == 0) return false;

    if (b)
    {
    ShowWindow(int1, SW_HIDE);

    SystemParametersInfo(SPI_GETWORKAREA, 0, ref rectOld, SPIF_UPDATEINIFILE);//屏幕范围

    Rectangle rectFull = Screen.PrimaryScreen.Bounds;//全屏范围

    SystemParametersInfo(SPI_SETWORKAREA, 0, ref rectFull, SPIF_UPDATEINIFILE);//全屏幕显示
    }
    else//还原
    {
    ShowWindow(int1, SW_SHOW);//任务栏

    SystemParametersInfo(SPI_SETWORKAREA, 0, ref rectOld, SPIF_UPDATEINIFILE);//还原
    }

    return true;
    }

    private void button1_Click(object sender, EventArgs e)
    {
    //全屏

    this.SuspendLayout();

    SetFullScreen(true);

    this.FormBorderStyle = FormBorderStyle.None;

    this.WindowState = FormWindowState.Maximized;

    this.Activate();

    this.ResumeLayout(false);
    }

    private void button2_Click(object sender, EventArgs e)
    {
    //还原

    this.WindowState = FormWindowState.Normal;

    this.FormBorderStyle = FormBorderStyle.Sizable;

    SetFullScreen(false);

    this.Activate();

    this.ResumeLayout(false);
    }
    }
    }

  • 相关阅读:
    微软新一代Surface,该怎么看?
    Windows 8创新之路——样章分享
    微软新一代Surface发布,参数曝光
    从MS Word到Windows Live Writer
    《计算机科学基础》学习笔记_Part 1 Computer and Data
    我看Windows 8.1
    Hyper-V初涉_早期Windows安装虚拟硬件驱动
    2020.09.05【省选组】模拟 总结
    2020.08.15【NOIP提高组】模拟 总结
    2020.08.14【省选B组】模拟 总结
  • 原文地址:https://www.cnblogs.com/xuhaifeng/p/7026430.html
Copyright © 2011-2022 走看看