大树下好乘凉

导航

C#窗体的最大化、最小化按钮事件

一、捕获最大化、最小化事件

    (处理发生在最大化、最小化按钮事件之后)可以判断用户是否点击了最大化、最小化按钮,并根据点击按钮的不同做相应处理。

        protected override void OnResize(EventArgs e) 
        
            if(WindowState == FormWindowState.Maximized) 
            
                //最大化时所需的操作 
                MessageBox.Show("max");
            
            else if(WindowState == FormWindowState.Minimized) 
            
                //最小化时所需的操作
                MessageBox.Show("min");
            
        }

     二、重写最大化、最小化事件

      重写可实现对最大化、最小化按钮事件的拦截,使程序按自己的方式运行。

        private int WM_SYSCOMMAND = 0x112;
        private long SC_MAXIMIZE = 0xF030;
        private long SC_MINIMIZE = 0xF020;
        private long SC_CLOSE = 0xF060;
        protected override void WndProc(ref   Message m)
        {
            if (m.Msg == WM_SYSCOMMAND)
            {
                if (m.WParam.ToInt64() == SC_MAXIMIZE)
                {
                    //MessageBox.Show("MAXIMIZE ");
                    return;
                }
                if (m.WParam.ToInt64() == SC_MINIMIZE)
                {
                    //MessageBox.Show("MINIMIZE ");
                    return;
                }
                if (m.WParam.ToInt64() == SC_CLOSE)
                {
                    //MessageBox.Show("CLOSE ");
                    return;
                }
            }
            base.WndProc(ref   m);
        }

 

posted on 2009-09-07 13:54  大树下好乘凉  阅读(2658)  评论(1编辑  收藏  举报