C#学习日记2016-12-22 Windows消息响应机制和C#中的窗口处理方法

Windows的消息处理系统

windows消息处理机制一般分为三个部分:

  1.消息队列:Windows的消息一般是由Windows统一在一个消息队列中进行管理

  2.消息循环:应用程序从消息队列中获取自己的消息,并将其分配给窗体方法进行处理

  3.窗口过程:负责处理接收到的消息,每个窗口都有对应的窗口过程,负责截获消息并 进行响应,WinProc是窗口处                          理方法,负责处理接收到的消息。一般我们处理程序时,不会注意到这个函数,系统会自动替我们生                             成,WinProc方法通过switch··case语句判断消息并进行处理,  如果有case中没有出现的情况,系统会调                       用DefWinProc方法进行处理,所以在用户的自定义消息中,可以通过重载DefWinProc方法的                      switch···case语句进行处理

 protected override void WndProc(ref Message m)    //对WndProc进行重写,实现用户的需求
        {
            switch (m.Msg)
            { 
                case 0x4e:
                case 0xd:
                case 0xe:
                case 0x14:
                    base.WndProc(ref m);         //调用基类的WndProc方法
                    break;
                case 0x84:
                    this.DefWndProc(ref m);      //鼠标点击任意位置后都可以进行拖动窗体,重写这个方法。
                    if(m.Result.ToInt32()==0x01)
                    {
                        m.Result = new IntPtr(0x02);
                    }
                    break;
                case 0xA3:                         //禁止双击最大化
                    break;
                default:
                    base.WndProc(ref m);
                    break;
            }
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值