• C#WinForm窗体监听/拦截操作动作


    C#中的事件也是通过封装系统消息来实现的,如果你在WndProc函数中不处理该消息

    那么,它会被交给系统来处理该消息,系统便会通过代理来实现鼠标单击的处理函数,因此你可以通过

    WndProc函数来拦截消息

    1. protected override void WndProc(ref Message m)  
    2.        {  
    3.            const int WM_SYSCOMMAND = 0x0112;  
    4.            const int SC_CLOSE = 0xF060;  
    5.   
    6.            if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)  
    7.            {  
    8.                // 屏蔽传入的消息事件   
    9.                this.WindowState = FormWindowState.Minimized;  
    10.                return;  
    11.            }  
    12.            base.WndProc(ref m);  
    13.        }  
    14.   
    15.        protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)  
    16.        {  
    17.            int WM_KEYDOWN = 256;  
    18.            int WM_SYSKEYDOWN = 260;  
    19.   
    20.            if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN)  
    21.            {  
    22.                switch (keyData)  
    23.                {  
    24.                    case Keys.Escape:  
    25.                        this.Close();  
    26.   
    27.                        break;  
    28.                }  
    29.            }  
    30.            return false;  
    31.        }  
    让人迷茫的原因只有一个,那就是在本该拼搏的年龄,却想的太多,做的太少!!!
  • 相关阅读:
    js保存图片至本地
    ArrayLike
    key的作用
    react Video event
    react中字符串换行
    react打包后找不到静态文件
    2020软件工程第三次作业
    003 Longest Substring Without Repeating Characters
    002addTwoNumbers
    001twoSum
  • 原文地址:https://www.cnblogs.com/liujiaknowledge/p/5035682.html
Copyright © 2020-2023  润新知