Winform中如何处理窗口右上角的"最小化"事件?


我想在点击"最小化"按钮后,隐藏窗体,并显示托盘图标.
最小化的时候是个什么事件啊? 谢谢各位了!!!

7 个解决方案

#1


protected override void WndProc(ref   Message m)
        {
            const int WM_SYSCOMMAND = 0x0112;

            const int SC_MINIMIZE = 0xF020;

            if (m.Msg == WM_SYSCOMMAND && ((int)m.WParam == SC_MINIMIZE ))
            {
                //最小化到系统栏 
                this.Hide();
                return;
            }
            base.WndProc(ref   m);
        }
  
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html

#2


try

private void Form1_SizeChanged(object sender, EventArgs e)
{
    if (this.WindowState == System.Windows.Forms.FormWindowState.Minimized)
    {
        this.Hide();
        this.notifyIcon1.Visible = true;
    }
    if (this.WindowState == FormWindowState.Normal)
    {
        this.notifyIcon1.Visible = false;
    }
}

#3


谢谢,这种常数值在什么地方可查? 查过帮助说有个windows.h不过MSDN中找不到这个文件:(
 const int WM_SYSCOMMAND = 0x0112; 

 const int SC_MINIMIZE = 0xF020; 

#4


可以在Form的SizeChanged事件中写

 private void Form1_SizeChanged(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                this.ShowInTaskbar = false;
                this.notifyIcon1.Visible = true;
            }
        }

#5


thank you lxcnn, the code works too!!!

#6


vc下有

http://www.koders.com/c/fidBAB12621377E0D05C82319FAE66567C9554A38E9.aspx?s=sort

#7


thank you all!!!
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告