代码改变世界

winform 浮动窗体

2012-04-25 17:56  枫桥夜泊日  阅读(1034)  评论(0)    收藏  举报

1 导入user32.dll

 #region user32.dll
        //导入user32.dll
        [System.Runtime.InteropServices.DllImport("user32")]
        //声明API函数
        private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);

        #region 常量
        //正面_水平方向
        const int AW_HOR_POSITIVE = 0x0001;
        //负面_水平方向
        const int AW_HOR_NEGATIVE = 0x0002;
        //正面_垂直方向
        const int AW_VER_POSITIVE = 0x0004;
        //负面_垂直方向
        const int AW_VER_NEGATIVE = 0x0008;
        //由中间四周展开或
        const int AW_CENTER = 0x0010;
        //隐藏对象
        const int AW_HIDE = 0x10000;
        //显示对象
        const int AW_ACTIVATE = 0x20000;
        //拉幕滑动效果
        const int AW_SLIDE = 0x40000;
        //淡入淡出渐变效果
        const int AW_BLEND = 0x80000;
        #endregion
        #endregion

 

2 添加控件,隐藏浮动面板的事件代码

  AnimateWindow(this.panelMessage.Handle, 1000, AW_SLIDE | AW_HIDE | AW_VER_POSITIVE);

3 显示浮动面板的事件代码

   AnimateWindow(this.panelMessage.Handle, 1000, AW_SLIDE | AW_ACTIVATE | AW_VER_NEGATIVE);

4 总结

   同是调用同一个方法,只是其中的参数不同而异,所以通过改变方法的参数还可以用到其他的场景(例如面板向四周展开,淡入淡出渐变效果)