高手帮帮忙,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有这样的作用
[解决办法]
你可以来个实际点的例子,你这个例子。。。完全。。没必要。。。也不可取~
[解决办法]
哥们,这个完全可以在各自控件上面写事件啊,微软也提倡写事件的方式,难道你没有注意到控件上直接就有鼠标进入,离开这些事件?