C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件【整理】

之前做过一些窗体最小化之后隐藏窗体到右下角托盘的程序,一般就几个事件和属性的处理:程序启动不显示在任务栏,点击最小化后隐藏到右下角的托盘,点击托盘图标可以弹出程序界面。(具体怎样做读者可以自行搜索,因为都大同小异我就不写了)

但是最近在做一个程序的时候遇到一个问题,最小化之后虽然不显示在任务栏,但是窗体却缩小到屏幕的左下角,结果还是不能实现真正的隐藏。

可是我找出以前写的一些程序来看,运行没问题啊,最小化不会缩小到屏幕左下角啊,代码也是一样的啊,难道~~又是人品问题 - -!

目前用以前的方法仍无法解决这个问题,期待高手解答....

好了,于是我又去搜了一些资料,就是下面这块代码了,完美解决,于是开始研究WndProc这个东东...

const int WM_SYSCOMMAND = 0x112;
const int SC_CLOSE = 0xF060;
const int SC_MINIMIZE = 0xF020;
const int SC_MAXIMIZE = 0xF030;
protected override void WndProc(ref Message m)
{
    if (m.Msg == WM_SYSCOMMAND)
    {
        if (m.WParam.ToInt32() == SC_MINIMIZE) //是否点击最小化
        {

            //这里写操作代码
            this.Visible = false; //隐藏窗体
            return;
        }


        if (m.WParam.ToInt32() == SC_MAXIMIZE )

        { //..................... }

       

        if (m.WParam.ToInt32() == SC_CLOSE )

        {   //.....................}


    }
    base.WndProc(ref m);
}

//这个功能是 捕获最小化按钮事件 ,隐藏当前窗体.
posted @ 2011-03-26 14:49  与卡  阅读(4702)  评论(1编辑  收藏  举报