对于无标题栏的窗口,点击任务栏图标的时候,是不能像普通窗口一样最小化和还原的,如何控制点一下图标的时候就最小化或还原?

解决方案 »

  1.   

    顶啊,CSDN里就没有人能解决这个问题吗?
      

  2.   

    FormBorderStyle=None就会失去最小化和复原的控制权.
    把Forordertyle改回正常,标题栏藏起来就行了.
      

  3.   

    private void Form1_Load(object sender, EventArgs e)
    {           
            this.SetBounds(this.Left, this.Top, 201, 101,
                                BoundsSpecified.Size);
            //多边形顶点
            Point[] points =
            {new Point(0, 50), 
            new Point(0, 200),
            new Point(200, 200),
            new Point(200, 50)};
            byte[] types =
            {(byte) System.Drawing.Drawing2D.PathPointType.Line,
            (byte) System.Drawing.Drawing2D.PathPointType.Line,
            (byte) System.Drawing.Drawing2D.PathPointType.Line,
            (byte) System.Drawing.Drawing2D.PathPointType.Line};
                //GraphicsPath
                System.Drawing.Drawing2D.GraphicsPath path =
                    new System.Drawing.Drawing2D.GraphicsPath(points, types);
                //改变形状(四方形)
                this.Region = new Region(path);        }
    }
      

  4.   

    你反过来想就可以了,如果你的窗体有边框,但是没有标题栏,那么系统菜单还是有的
    如果你连边框都不用要了,那么要通过API来加系统菜单,还是可以的
      

  5.   

    我现在真的不想像你说的那样去做,感觉那样的话好像是消极的处理方法?能不能想点别的办法啊,我用了很多特效的,怕是用你的方法的话会漏洞百出,比如说我还用了窗体的滑动弹出和不规则窗体,如果处理不好,会先出来了一个不规则,再滑动,很麻烦的,我也试过,真的不行!给一个好的办法好吗?高手,我试过windows消息,不过不知道点击任务栏图标有没有确切的消息,好像没有,没查到!
      

  6.   

    把下面的代码加到你的Form里,可以达到最小化/复原的效果.   
        protected override CreateParams CreateParams
            {
                get
                {                CreateParams cp = base.CreateParams;
                    cp.Style = cp.Style | 0x20000;
                    return cp;
                }
            }
      

  7.   

    0x20000是允许最小化操作,
    此外还有
            const int WS_EX_TOOLWINDOW = 0x80;
            const long WS_POPUP = 0x80000000L;
            const int WS_VISIBLE = 0x10000000;
            const int WS_SYSMENU = 0x80000;
            const int WS_MAXIMIZEBOX = 0x10000;
    .
    曾经有用户向MS报告过这个问题,MS说为了最优化拒绝恢复过来.
    FormBorderStyle=None的情况下最小化操作被屏蔽掉,恢复过来就好了.
    要注意的是NT,2000里FormBorderStyle=None的窗口可能不在任务栏里显示,
    Windows7里TaskBar发生重大改进,不知道这个还好不好使.
      

  8.   

    非常感谢10楼朋友的方法!不知在windows7下还可行否