WinForm-区别手动关闭窗体与Close()关闭

发布时间 2023-04-19 14:18:00作者: ꧁执笔小白꧂
    /// <summary>
    /// 监听手动关闭事件
    /// </summary>
    /// <param name="msg"></param>
    protected override void WndProc(ref Message msg)
    {
        const int WM_SYSCOMMAND = 0x0112;
        const int SC_CLOSE = 0xF060;
        if (msg.Msg == WM_SYSCOMMAND && ((int)msg.WParam == SC_CLOSE))  // 点击框架右上关闭按钮时
        {
            Environment.Exit(0);
        }
        else{
            // close()、windowapi通知该窗体关闭、windowapi强制关闭、异常关闭等事件
        }
        base.WndProc(ref msg);
    }