`
miss4813
  • 浏览: 104940 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C# 仿制弹出消息框

阅读更多
打开QQ的时候,QQ新闻弹出窗体在屏幕的右下角就会慢慢升起一个小窗口,占用的地方不大,可以起到提示的作用。下面就让我们来看看,怎样用系统API来轻松实现这个功能。
API原型函数:
bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
从字面的意思来看,这个函数名为"活动的窗口",事实上也如此,通过这个函数,可以使我们的窗体动作丰富起来,要在c#中使用winApi首先引入命名空间:

view plaincopy to clipboardprint?
//引入命名空间   
using System.Runtime.InteropServices;  
//API原型  
[DllImport("user32.dll")]  
private static extern bool AnimateWindow(IntPtr hwnd, int dateTime, int dwFlags);//hwnd窗口句柄.dateTime:动画时长.dwFlags:动画类型组合 
        //引入命名空间
        using System.Runtime.InteropServices;
        //API原型
        [DllImport("user32.dll")]
        private static extern bool AnimateWindow(IntPtr hwnd, int dateTime, int dwFlags);//hwnd窗口句柄.dateTime:动画时长.dwFlags:动画类型组合

下面是dwFlags的各种动画标志:

view plaincopy to clipboardprint?
int AW_ACTIVE = 0x20000; //激活窗口,在使用了AW_HIDE标志后不要使用这个标志  
int AW_HIDE = 0x10000;//隐藏窗口  
int AW_BLEND = 0x80000;// 使用淡入淡出效果  
int AW_SLIDE = 0x40000;//使用滑动类型动画效果,默认为滚动动画类型,当使用AW_CENTER标志时,这个标志就被忽略  
int AW_CENTER = 0x0010;//若使用了AW_HIDE标志,则使窗口向内重叠;否则向外扩展  
int AW_HOR_POSITIVE = 0x0001;//自左向右显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志  
int AW_HOR_NEGATIVE = 0x0002;//自右向左显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志  
int AW_VER_POSITIVE = 0x0004;//自顶向下显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志  
int AW_VER_NEGATIVE = 0x0008;//自下向上显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志 
        int AW_ACTIVE = 0x20000; //激活窗口,在使用了AW_HIDE标志后不要使用这个标志
        int AW_HIDE = 0x10000;//隐藏窗口
        int AW_BLEND = 0x80000;// 使用淡入淡出效果
        int AW_SLIDE = 0x40000;//使用滑动类型动画效果,默认为滚动动画类型,当使用AW_CENTER标志时,这个标志就被忽略
        int AW_CENTER = 0x0010;//若使用了AW_HIDE标志,则使窗口向内重叠;否则向外扩展
        int AW_HOR_POSITIVE = 0x0001;//自左向右显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志
        int AW_HOR_NEGATIVE = 0x0002;//自右向左显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志
        int AW_VER_POSITIVE = 0x0004;//自顶向下显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志
        int AW_VER_NEGATIVE = 0x0008;//自下向上显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志


申明变量保存窗体显示的坐标:

view plaincopy to clipboardprint?
private int currentX;//横坐标     
private int currentY;//纵坐标     
private int screenHeight;//屏幕高度     
private int screenWidth;//屏幕宽度   
       private int currentX;//横坐标  
        private int currentY;//纵坐标  
        private int screenHeight;//屏幕高度  
        private int screenWidth;//屏幕宽度
  

load事件中执行动画:

view plaincopy to clipboardprint?
Rectangle rect = Screen.PrimaryScreen.WorkingArea;  
screenHeight = rect.Height;  
screenWidth = rect.Width;  
currentX = screenWidth - this.Width;  
currentY = screenHeight - this.Height;  
this.Location = new System.Drawing.Point(currentX, currentY);  
 
AnimateWindow(this.Handle, 1000, AW_SLIDE | AW_VER_NEGATIVE); 
            Rectangle rect = Screen.PrimaryScreen.WorkingArea;
            screenHeight = rect.Height;
            screenWidth = rect.Width;
            currentX = screenWidth - this.Width;
            currentY = screenHeight - this.Height;
            this.Location = new System.Drawing.Point(currentX, currentY);

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

试试吧!



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/PaulEAfly/archive/2010/01/14/5188830.aspx
分享到:
评论

相关推荐

    C# winform 右下角弹出消息框

    C# WinForm 消息提示功能,类似QQ的消息提醒样式,可定时关闭,消息框弹出从下往上,关闭从上往下,有动画效果。当用户鼠标停放在提示框上时,自动关闭功能停止 ,当移走鼠标时,重新开始自动关闭功能 。有C#源码;...

    一个非常轻便好用的C#气泡弹出提示框控件

    【C#气泡弹出提示框控件详解】 在C#编程中,用户界面的交互设计至关重要,其中提示框控件是提供用户反馈信息的重要工具。传统的MessageBox虽然简单易用,但其样式单一,不能满足一些高级应用的需求。本文将详细介绍...

    asp.net中弹出消息框后跳转页面

    ### ASP.NET中弹出消息框后跳转页面 在ASP.NET开发过程中,有时我们需要在执行某些操作之后(如用户登录、表单提交等),向用户显示一条消息,并且随后将用户引导到另一个页面。这种场景在很多应用中都非常常见。...

    C#仿QQ弹出消息框的实现

    在C#编程中,模拟QQ弹出消息框是一项常见的需求,尤其在开发具有用户交互性的桌面应用程序时。本文将详细讲解如何使用C#实现一个类似于QQ的弹出消息框,包括窗体的动画效果,如向上弹出、向下降落以及渐变透明消失。...

    C# 任务栏弹出消息提示框

    在IT领域,尤其是在Windows应用程序开发中,经常需要实现一种功能:在任务栏上弹出类似于MSN或QQ的消息提示框,这种提示框可以在不干扰用户主界面工作的情况下,提供简短的信息通知。本教程将深入探讨如何使用C#编程...

    C# 桌面弹出窗体,右下角弹提示框

    以上就是实现C#桌面应用右下角弹出类QQ提示框的关键技术点。通过结合窗体、事件处理、动画效果以及屏幕定位,我们可以创建一个既美观又实用的提示系统。在实际项目中,你可能还需要考虑线程安全、多显示器支持、...

    C# winform 进度条弹出框

    本文将深入探讨如何在C# Winform中实现一个带有进度条的弹出框,并在任务完成后自动关闭。 首先,让我们了解`ProgressBar`控件的基本用法。在Winform设计界面中,你可以从工具箱中拖拽一个`ProgressBar`控件到窗体...

    C# 弹出框,winform弹出框

    在IT行业中,尤其是在Windows应用...总的来说,实现一个仿QQ新闻弹出框需要结合C#编程技巧、WinForm控件的使用、事件处理和自定义动画逻辑。通过这种方式,我们可以创建出具有专业外观和良好用户体验的弹出通知系统。

    如何在c#web上弹出消息框

    在C# Web应用程序中弹出消息框是一种常见的交互方式,用于向用户显示警告、确认信息或者简单的提示。在ASP.NET框架下,由于Web应用程序的异步性质,直接使用Windows Forms中的MessageBox并不适用,因为Web应用运行在...

    C# 自定义修改密码弹出框

    自定义弹出框可以提供更好的用户体验,因为它可以根据应用的品牌和设计规范进行定制,而不是使用系统默认的对话框。 创建自定义修改密码弹出框通常涉及以下几个关键步骤: 1. **UI设计**:首先,你需要设计一个...

    C# WinForm 弹出窗口

    在C# WinForm开发中,有时我们需要创建具有特殊效果或者个性化设计的窗口,例如模仿流行的即时通讯软件QQ的弹出窗口。这样的窗口不仅能够吸引用户的注意力,还能为应用程序增添一些特色。本文将深入探讨如何使用C# ...

    c# 编写的弹出框进度条

    在C#编程中,弹出框进度条是一种用户界面元素,用于向用户显示某个操作的进度,例如文件复制、解压缩或网络下载等长时间运行的任务。这种功能在Visual Studio(如VS2017)中可以通过Windows Forms或WPF框架轻松实现...

    C#弹出输入框

    C# 弹出输入框的多种方法 在 C# 中,弹出输入框是非常常见的交互方式,特别是在 WinForm 应用程序中。今天,我们将探讨多种方法来弹出输入框,包括使用委托、使用 VB 类库等。 1. 使用委托弹出输入框 在上面的...

    C#弹出框示例代码.rar

    本示例代码着重展示了如何在C#环境中实现弹出框功能,这通常用于与用户进行交互,如确认操作、输入信息等。ASP.NET是Microsoft开发的一个用于构建动态Web应用的平台,它集成了C#作为服务器端编程语言,提供了丰富的...

    C# winform 实时消息提示框

    "TaskbarNotifierDemo"项目就是基于这一思想,它提供了一种在任务栏附近弹出的提示窗口,类似于Windows系统通知中心的消息。这种设计允许开发者在不打断用户主工作流的情况下传递信息。 该项目包含以下关键知识点:...

    C#弹出消息类.zip类库

    在C#编程中,创建一个弹出消息类可以极大地提高代码的可复用性和模块化。这个"C#弹出消息类.zip"类库提供了一种简单的方法来在应用程序中显示各种消息,比如警告、错误或者确认信息。下面,我将详细讲解这个类库的...

    .net C# webform msgbox 警告、确认消息框

    服务器端代码负责处理业务逻辑和数据,而JavaScript代码则用于在用户浏览器端创建动态的弹出对话框。例如,可以创建一个自定义的ASP.NET服务器控件,当其需要显示消息时,可以向客户端发送指令,然后使用AJAX更新...

    访QQ弹出的消息框(可以移动)

    在C#中,创建消息框通常会用到System.Windows.Forms命名空间下的MessageBox类,它可以弹出系统标准的对话框,但这里提到的是自定义的消息框,所以开发者可能创建了一个自定义控件来实现更个性化的功能。 在“压缩...

    C# winform 实现弹出的等待对话框实例

    ### C# WinForm 实现弹出的等待对话框实例解析 #### 一、概述 在开发基于WinForms的应用程序时,经常会遇到需要显示一个等待对话框的场景,尤其是在执行耗时操作(如网络请求或数据库操作)期间。这种对话框通常会...

    C#.NET弹出消息实例和源码汇总

    在C#.NET编程中,弹出消息通常是指利用系统提供的对话框显示简短信息或向用户请求确认操作的机制。这些对话框包括常见的MessageBox、InputBox等,它们为用户提供了一种直观的交互方式。本资源汇总了C#.NET中关于弹出...

Global site tag (gtag.js) - Google Analytics