zoukankan      html  css  js  c++  java
  • WinFom解决最小化最大化后重绘窗口造成闪烁的问题

    WinFom解决最小化最大化后重绘窗口造成闪烁的问题

    网上两种方案(可协同)

    1 设置双缓冲:


    SetStyle(ControlStyles.UserPaint, true);
    SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
    SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲

    2 捕获最大化最小化事件,临时挂起布局逻辑

    const int WM_SYSCOMMAND = 0x112;
    const int SC_CLOSE = 0xF060;
    const int SC_MINIMIZE = 0xF020;
    const int SC_MAXIMIZE = 0xF030;
    protected override void WndProc(ref Message m)
    {
    if (m.Msg == WM_SYSCOMMAND)
    {
    if (m.WParam.ToInt32() == SC_MINIMIZE) //是否点击最小化
    {

    this.SuspendLayout();
    this.WindowState = FormWindowState.Minimized;
    this.ResumeLayout(false);
    }


    if (m.WParam.ToInt32() == SC_MAXIMIZE)
    {
    this.SuspendLayout();
    this.WindowState = FormWindowState.Maximized;
    this.ResumeLayout(false);
    }

    if (m.WParam.ToInt32() == SC_CLOSE)
    { //.....................
    }


    }
    base.WndProc(ref m);
    }

  • 相关阅读:
    20210524
    20210521
    20210520
    20210519
    20210518
    20210517
    字符设备驱动三
    字符设备驱动二
    字符设备驱动一
    git基本操作
  • 原文地址:https://www.cnblogs.com/grj001/p/12223106.html
Copyright © 2011-2022 走看看