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

  • 相关阅读:
    Elasticsearch 深入5
    Elasticsearch 深入4
    Elasticsearch 深入3
    Elasticsearch 深入2
    Elasticsearch1简单深入
    Kibana简单操作Elasticsearch
    什么是非阻塞同步?
    面向对象之思考
    使用spring代码中控制事务
    mybatis 中使用oracle merger into
  • 原文地址:https://www.cnblogs.com/xuhaifeng/p/7026430.html
Copyright © 2011-2022 走看看