- 浏览: 510863 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
michao:
大哥,还有aperture.exe吗? 发我一份,找不到呀,m ...
使用aperture框架让AS3与C++通信,执行本地代码 -
Aaron-Joe-William:
文件被删除了。下不了。
SQLite 数据库加密的一种解决方案 -
hanmiao:
樓主的文章不就是來自IBM Developers里的http: ...
mina 入门 -
howesen:
断包与粘包问题,需要处理下就好了
mina接收数据不全(2) -
sniciq:
git clone --recursive git://git ...
ESB学习笔记(Spring Integration实战)
上一篇 我们完成了“覆盖图标”(Overlay Icon)的相关开发,本篇我们将对进度条特性进行研究。在使用IE 下载文件时,任务栏图标会同步显示当前下载进度(如下图)。那么在应用程序中如何实现这个效果呢?
下载状态
TaskbarManager.SetProgressValue 方法
在TaskbarManager 类中有三种不同方式使用SetProgressValue 方法来设置进度条当前位置,其中currentValue 为进度条当前位置的参数,maximumValue 为最大参数:
//设置当前窗口 public void SetProgressValue(int currentValue, int maximumValue) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressValue(OwnerHandle, Convert .ToUInt32(currentValue), Convert .ToUInt32(maximumValue)); } //设置指定窗口 public void SetProgressValue(int currentValue, int maximumValue, IntPtr windowHandle) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressValue(windowHandle, Convert .ToUInt32(currentValue), Convert .ToUInt32(maximumValue)); } //设置指定WPF窗口 public void SetProgressValue(int currentValue, int maximumValue, System.Windows.Window window) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressValue( (new WindowInteropHelper (window)).Handle, Convert .ToUInt32(currentValue), Convert .ToUInt32(maximumValue)); }
TaskbarProgressBarState 进度条状态
除了常见的绿色(Normal 正常状态)外,还可以通过调用枚举TaskbarProgressBarState 使用其他几种状态,请参看下表:
NoProgress | 不显示进度条 |
Indeterminate | 不定值进度条(处于滚动状态) |
Normal | 正常状态(绿色) |
Error | 错误状态(红色) |
Paused | 暂停状态(黄色) |
TaskbarManager.SetProgressState 方法
如何为进度条设置以上状态呢?当然TaskbarManager 也同样提供了三种不同的方式使用SetProgressState 方法,对进度条状态进行相应的设置:
//设置当前窗口状态 public void SetProgressState(TaskbarProgressBarState state) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressState(OwnerHandle, (TBPFLAG )state); } //设置指定窗口状态 public void SetProgressState(TaskbarProgressBarState state, IntPtr windowHandle) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressState(windowHandle, (TBPFLAG )state); } //设置指定WPF窗口状态 public void SetProgressState(TaskbarProgressBarState state, System.Windows.Window window) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressState( (new WindowInteropHelper (window)).Handle, (TBPFLAG )state); }
效果演示
下面只需要在程序中使用以上方法便可实现对进度条的控制,下面代码通过Slider 调节进度条当前数值:
TaskbarManager .Instance.SetProgressValue((int )progressSlider.Value, 100); TaskbarManager .Instance.SetProgressState( (TaskbarProgressBarState )progressBarStatus.SelectedItem);
通过调整进度条呈现出三种不同的状态效果:
正常状态 错误状态 暂停状态
闪动效果
使用Live Messenger(LM)聊天时,如果对方发出了信息LM 图标会闪动提示,虽然Windows API 没有直接控制闪动效果的方法,但该效果在开发中可能会经常使用,下面代码为一个闪动效果类:
internal sealed class FlashWindowHelper { DispatcherTimer _timer; int _count = 0; int _maxTimes = 0; Window _window; public void Flash(int times, double millliseconds, Window window) { _timer = new DispatcherTimer (); _maxTimes = times; _timer.Interval = TimeSpan .FromMilliseconds(millliseconds); _timer.Tick += OnTick; _window = window; _timer.Start(); } void OnTick(object sender, EventArgs e) { if (++_count < _maxTimes) { Win32 .FlashWindow(new WindowInteropHelper (_window).Handle, (_count % 2) == 0); } else { _timer.Stop(); } } } internal static class Win32 { [DllImport ("user32.dll" )] public static extern bool FlashWindow(IntPtr hwnd, bool bInvert); }
通过FlashWindowHelper 类可以轻松的使任务栏图标闪动起来:
private void flashTaskbar_Click(object sender, RoutedEventArgs e) { FlashWindowHelper helper = new FlashWindowHelper (); helper.Flash(8, 400, Application .Current.MainWindow); }
发表评论
-
RichTextBox 添加控件,被禁用如何处理 button
2010-11-01 18:45 1295WPF中RichTextBox的确非 ... -
归纳一下:C#线程同步的几种方法
2010-10-28 11:18 1326我们在编程的时候,有时会使用多线程来解决问题, ... -
关于WPF ListView数据绑定 入门 及分类,排序
2010-09-03 18:14 9405不多说,先直接上代码 ... -
关于WPF 数据绑定简单介绍及入门
2010-09-02 20:07 5387今天搞了一下午的数据绑定,由于以前用FLEX的数据绑定很 ... -
何为插件化系统,插件化系统有何优势
2010-08-10 14:28 2394当一个软件项目开 ... -
回调函数原理
2010-08-10 12:04 2245回调函数原理 声明CALLBACK 调用(call ... -
C#制作屏幕保护的方法 函数
2010-08-10 10:16 1491本文介绍使用C#制作屏 ... -
初探C# 异常处理
2010-08-03 10:39 1330一、基础 在C# 里,异 ... -
C#中使用try catch对系统性能的影响和处理机制的学习总结!
2010-08-03 10:31 2851问题1:当一段代码被try ... -
C# WebClient上传下载时进度条显示,找了好久才找到的哦!
2010-07-23 11:05 77252、代码: using System; using Sys ... -
WinFrom通过WebClient上传下载文件(带进度条)
2010-07-23 10:48 4301(2009-09-27 12:18:09) 转 ... -
关于图片保存问题
2010-07-15 20:01 1000如果你在用PngBitmapEncoder之类的 Save图片 ... -
WPF 新弹出窗口抢焦点问题
2010-06-21 16:34 4126新弹出窗口抢了正在使用的窗口焦点,这个问题烦了好久,今天终于有 ... -
C# 第三方控件
2010-06-08 10:29 3075DevExpress,NetAdvantage 这两套算是最全 ... -
浅析C#中三层架构的实现
2010-06-02 16:14 1634本文讨论如何在C#中实现三层架构,使用MS Acces ... -
数据绑定
2010-05-31 18:42 873http://liutiemeng.blog.51cto.co ... -
C# 修改警告心得
2010-05-22 17:08 14281.(CA1031)如果有try catch最好不要捕获Exc ... -
C# log4net
2010-05-17 13:40 2224说明:本程序演示如何利用log4net记录程序日志信息。log ... -
C# 开机启动
2010-05-13 17:41 1660C# winform程序设置开机 ... -
Base64编码的字符串与图片的转换 C#
2010-04-28 15:05 2847using System; using System.Col ...
相关推荐
在Windows应用程序开发中,特别是在使用MFC(Microsoft Foundation Classes)框架时,我们经常需要向用户显示应用程序的状态或执行过程,这时状态栏中的进度条就能派上用场。本资源主要介绍如何在MFC应用程序的状态...
在Android开发中,为了提供更好的用户体验,我们常常需要在状态栏显示进度条,尤其是在执行耗时操作如网络请求、文件下载或数据加载时。本文将详细介绍如何在Android的状态栏中添加进度条,并提供源码帮助你理解并...
在Microsoft Visual C++ 6.0(简称VC6.0)环境下,开发MFC应用程序时,我们有时需要在用户界面中展示进度信息,此时状态栏(StatusBar)中的进度条(ProgressBar)是一个很好的选择。本教程将详细介绍如何在VC6.0的...
在MFC(Microsoft Foundation Classes)编程环境中,状态栏(Status Bar)通常用于显示应用程序的状态信息,如快捷键提示、帮助信息等。为了增强用户体验,有时我们需要在状态栏中添加一个进度条来显示某些长时间...
在VC++编程环境中,添加进度条到状态栏是常见的需求,尤其在开发多文档界面(MDI)应用程序时,用户界面的反馈对用户体验至关重要。本文将详细介绍如何在VC++的MFC框架下,为状态栏增添一个进度条组件,提供实时的执行...
标题中的"Systray Progress Bar.zip_progress"表明这是一个与系统托盘区(Systray)相关的项目,特别地,它涉及到在任务栏的系统托盘区域显示进度条(ProgressBar)的功能。这种技术常用于告知用户某个后台进程的...
3. **任务栏进度条(Taskbar Progress Bar)**:任务栏上的进度条可以帮助用户了解程序的运行状态,如文件下载或上传进度。在WPF中,我们可以使用`TaskbarItemInfo`对象的`ProgressValue`属性和`ProgressBarState`...
而Progress Control是状态栏中的一个特殊控件,用于向用户反馈操作的进度,如文件复制、下载或其他长时间运行任务的完成情况。本篇文章将深入探讨如何在MFC的状态栏上实现四种不同效果的进度条。 首先,我们需要...
在Android开发中,通知栏(Notification)是一种向用户传达应用状态和信息的重要方式,而进度条(Progress Bar)则是展示任务执行进度的关键组件。本文将深入探讨如何在Android通知栏中使用常见方法以及如何显示...
在Android开发中,创建用户友好的界面和交互是至关重要的,本`android demo`着重展示了如何处理Progress进度条、DatePicker日期选择器、导航栏以及按钮等常见组件的使用。下面将详细阐述这些知识点: 1. **Progress...
这就是在MFC应用程序中创建和使用状态栏进度条的基本流程。实际应用中,你可能还需要处理线程同步、错误处理以及更复杂的用户交互。通过结合多线程技术,如文件` MultiThread `所示,可以实现异步计算,同时保持用户...
在Windows程序设计中,C语言常被用于创建各种桌面应用程序,包括那些包含用户界面元素如工具栏、滑动条(Slider)和进度条(Progress Bar)的程序。这些控件在用户交互中扮演着重要角色,提供了一种直观的方式来调整...
而“带进度条的状态栏”则是在这个基础功能上增加了进度指示功能,能够为用户提供正在进行的操作进度反馈,比如文件加载、数据处理或者网络下载等长时间运行任务的完成情况。 状态栏上的进度条有两种主要类型:连续...
这个类是Windows API中的Progress Bar控件的包装,可以显示一个水平条形图,反映任务的完成程度。在创建MFC项目时,我们需要在资源编辑器中添加一个新的控件,并将其类型设置为Progress。 步骤一:在MFC项目的资源...
为了增强用户体验,我们有时需要在状态栏中添加一个进度条(Progress Bar),以便在执行耗时操作,如打开大文件时,向用户展示任务的进度。本教程将详细介绍如何在MFC的View视图中实现这一功能。 首先,我们需要...
在Windows应用程序开发中,Microsoft Foundation Class (MFC)库是一个强大的工具,它为开发者提供了创建桌面应用程序的便利。本篇文章将深入探讨如何在MFC应用中实现带进度条的状态栏,以此来提升用户体验并提供实时...
在Java编程领域,导航栏(Navigation Bar)和进度条(Progress Bar)是用户界面(UI)设计中的关键组件,它们提供了良好的用户体验并帮助用户更好地理解应用程序的状态和操作流程。下面将详细阐述这两个组件的设计和...
在VC++编程中,进度条通常用于提供用户界面反馈,让用户了解某个长时间运行任务的进度,比如文件传输或软件安装。进度条控件在MFC(Microsoft Foundation Classes)库中被实现为CProgressCtrl类,它是Windows API...
本示例将详细介绍如何在Delphi窗体的状态栏(Status Bar)中添加一个进度条控件,以实现动态显示程序运行进度的功能。 首先,打开Delphi集成开发环境(IDE),创建一个新的VCL Forms Application项目。在设计界面中...
在IT开发领域,特别是在Windows应用程序设计中,"弹出模式窗口显示进度条"是一个常见的需求,主要用于提升用户体验,让用户能够直观地看到后台处理任务的进度,例如文件复制、下载或其他耗时操作。本文将深入探讨...