路疯驰

一路疯驰(沪ICP备15037456号)

博客搜索:

文章分类: 数据管理(18) 商务智能(0) 软件开发(8) 其他(13) Winform(1) 大数据(0)

winform 控件消息转发

作者:Jason Yang 分类:软件开发 浏览:

场景,Panel中放置了自定义控件,控件中包含了listbox,导致当鼠标放在listbox上的 时候,鼠标滚轮无法滚动panel。

处理方式:基于ListBox扩展一个控件,然后捕获系统消息,如果是鼠标滚动,就将消息转发给外层的panel进行响应。


        [DllImport("User32.DLL")]

        private static extern int SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);


        protected override void WndProc(ref Message m)

        {

            switch (m.Msg)

            {

                case 0x020a: //鼠标滚轮滚动

                case 0x0207://按下鼠标滚轮

                case 0x0208://释放鼠标滚轮

                    if (ScrollEnable)

                    {

                        base.WndProc(ref m);

                    }

                    else

                    {

                        SendMessage(this.Parent.Parent.Parent.Handle,(uint) m.Msg, m.WParam, m.LParam);

                    }

                    break;

                default:

                    base.WndProc(ref m);

                    //base.DefWndProc(ref m);//调用基类函数处理非自定义消息。

                    break;

            }

        }


L最新评论
  • StevAnyclE

    2020-04-12 20:07:38

    Best Reviews On Cialis Purchase http://cialibuy.com/# - Cialis Amoxicilina Next Day With Free Shipping cialis 20mg Viagra En Farmacias Similares


P发布评论