• winform 类似 MSN,QQ 消息框


    form1 主窗体
    --------------------

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Threading;


    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            Form2 frm=null;
            public Form1()
            {
                InitializeComponent();
            }

            private void timer1_Tick(object sender, EventArgs e)
            {
                ShowMessageWindow("好哈哈哈");
            }

            private void Form1_Load(object sender, EventArgs e)
            {
               
            }
            private void ShowMessageWindow(object msg)
            {
        
                if (frm ==null )
                {
                    frm = new Form2();
                    frm.Text = msg.ToString();
                    frm.ShowDialog();
                }else if (frm.WidowHide){
                    frm.ShowDialog();
                }

            }
        }
    }


    ------------------------------------
    Form2 (message 窗体 )


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    namespace WindowsApplication1
    {
        public partial class Form2 : Form
        {
            private bool _BWindowHide =false;
            public Form2()
            {
                InitializeComponent();
            }
            public class Win32
            {
                public const Int32 AW_HOR_POSITIVE = 0x00000001;
                public const Int32 AW_HOR_NEGATIVE = 0x00000002;
                public const Int32 AW_VER_POSITIVE = 0x00000004;
                public const Int32 AW_VER_NEGATIVE = 0x00000008;
                public const Int32 AW_CENTER = 0x00000010;
                public const Int32 AW_HIDE = 0x00010000;
                public const Int32 AW_ACTIVATE = 0x00020000;
                public const Int32 AW_SLIDE = 0x00040000;
                public const Int32 AW_BLEND = 0x00080000;
                [DllImport("user32.dll", CharSet = CharSet.Auto)]
                public static extern bool AnimateWindow(
                    IntPtr hwnd,  //  handle  to  window   
                    int dwTime,  //  duration  of  animation   
                    int dwFlags  //  animation  type   
                );
                [DllImport("user32.dll", CharSet = CharSet.Auto)]
                public static extern bool SetWindowPos(
                    IntPtr hwnd,
                    int hWndInsertAfter,
                    int x,
                    int y,
                    int cx,
                    int cy,
                    int wFlags
                );

            }
            private void Form2_Load(object sender, EventArgs e)
            {

            }

            private void Form2_FormClosing(object sender, FormClosingEventArgs e)
            {

                _BWindowHide = true;
                Win32.AnimateWindow(this.Handle, 500, Win32.AW_HIDE | Win32.AW_VER_POSITIVE | Win32.AW_SLIDE | Win32.AW_BLEND);
            }
            public new void ShowDialog()
            {
                _BWindowHide = false;
                MyShowWindow();
                base.ShowDialog();
             
               
            }
            public bool WidowHide
            {
                get { return _BWindowHide; }
            }
            private void MyShowWindow()
            {
                Win32.SetWindowPos(this.Handle, 100, Screen.PrimaryScreen.Bounds.Width - this.Width, Screen.PrimaryScreen.Bounds.Height - this.Height - 30, 50, 50, 1);
                Win32.AnimateWindow(this.Handle, 500, Win32.AW_ACTIVATE | Win32.AW_SLIDE | Win32.AW_BLEND | Win32.AW_VER_NEGATIVE);
                this.label1.Text = "宽:" + this.Width;
                this.label2.Text = "高:" + this.Height;
            }
        }
    }


  • 相关阅读:
    为什么一看编程技术文章就这么兴奋呢?
    今天弄会了如何使用VB6使用AutoCAD提供的dll操作AutoCAD了
    简单工厂模式没想像中的难啊
    Linq本质论,C#3.0的特性。写的太好了!收藏!
    struct和class的区别
    饿了
    解决Eclipse 3.3+lomboz无法启动的问题
    IE8通过Acid2了
    Linux档案/目录 权限及修改
    Linux 初识man、info
  • 原文地址:https://www.cnblogs.com/xianzuoqiaoqi/p/1552811.html
Copyright © 2020-2023  润新知