日期:2014-05-17  浏览次数:20933 次

高手帮帮忙,windows消息的处理问题
最近正在学习C#对windows消息的处理问题,很简单一个例子,在窗体上放个panel1,panel1上放个按钮button1,当鼠标进入panel1时,button1显示,离开panel1时,button1隐藏(因为是学习消息的处理机制问题,所以没有利用panel的现有事件),我重载消息的处理过程如下,但没成功:
C# code
  protected override void WndProc(ref Message m)
  {
   if (m.HWnd == this.Handle && m.WParam==this.panel1.Handle)//这里怎么判断当前处理的是panel1
   {
    //textBox1.Text = textBox1.Text + "\r\n" + DateTime.Now.ToString();
    if (m.Msg == 0X200) //第一次处理鼠标的消息,我把它当做鼠标进入处理
    {
     button1.Visible = true;
    }

    if (m.Msg == 0X2A3)//鼠标离开
    {
     button1.Visible = true;
    }
   }
   base.WndProc(ref m);
  }


------解决方案--------------------
好像窗体的WndProc事件,只能处理窗体的消息,不能处理控件的消息
要处理控件的消息,需要重写一个控件,然后再处理WndProc



------解决方案--------------------
m.WParam==this.panel1.Handle
我没见过WParam有这样的作用



------解决方案--------------------
你可以来个实际点的例子,你这个例子。。。完全。。没必要。。。也不可取~
------解决方案--------------------
哥们,这个完全可以在各自控件上面写事件啊,微软也提倡写事件的方式,难道你没有注意到控件上直接就有鼠标进入,离开这些事件?