• C#:隔离点击任务栏上的图标时的“最小化或者恢复”的效果


      通常点击任务栏上的图标时,对应窗体实现“最小化或者恢复”的效果。但是在做最小化到托盘时,不希望点击任务栏图标时最小化到托盘,即希望拦截了这些效果(不允许:通过点击任务栏上的图标,实现“最小化或者恢复”的效果);

    具体实现代码如下:

            #region 区别 任务栏中点击窗体图标(最小化|恢复)与点击最小化按钮
    
            private int WM_SYSCOMMAND = 0x112;
            private long SC_MINIMIZE = 0xF020;
            protected override void WndProc(ref Message m)
            {
                if (m.Msg == WM_SYSCOMMAND)
                {
                    if (m.WParam.ToInt64() == SC_MINIMIZE && m.LParam.ToString() != "0")    //m.LParam.ToString() != "0" 表示任务栏中点击窗体图标(最小化|恢复)
                    {
                        HideMainForm(); //这里直接将窗体图盘化//this.isMinBoxHited = true;    //点击的是最小化按钮 通过中间变量不可行
                        return;
                    }
                }
                base.WndProc(ref m);
            }
    
            #endregion
    View Code

    如果想实现其他效果可以参考如下:

        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);  
        }  
    View Code
  • 相关阅读:
    myeclipse 8.6 安装svn插件
    最简单的jdbc程序
    win7 安装Redis
    面试问题
    在linux/unix中查找大文件
    Java:单例模式的七种写法
    JAVA设计模式之单例模式
    java_String和StringBuffer区别分析
    stringbuffer与stringbuilder的区别?
    String与StringBuffer的区别
  • 原文地址:https://www.cnblogs.com/shenchao/p/4724694.html
Copyright © 2020-2023  润新知