mfc学习之win7任务栏显示进度

来源:互联网 发布:淘宝靠谱代购推荐 编辑:程序博客网 时间:2024/06/05 23:51

    win7添加许多非常华丽的特性,不得不说其中的一些真的非常实用,比如在任务栏中显示进度。最近试着做一个播放器,于是把这个功能加了进去,折腾了一下午终于搞定了。。。

                              

   首先,这些功能是在一个叫ITaskbarList3 的类中实现的,包含在头文件shobjidl.h中,当然,ITaskbarList4也可以。由于是com组件,使用之前先要对com初始化,使用CoInitialize。

    在这个类的说明中,明确指出了在调用任何ITaskbarList3的方法之前,你的窗口必须接受到TaskbarButtonCreated的消息,这个消息通过RegisterWindowMessage进行注册,在接收到消息之后,也就是任务栏的图标创建了,便可以对其操作了。

      

 

    首先创建一个ITaskbarList3的指针,通过CoCreateInstance对其进行创建,之后就可进行操作了。使用SetProgressValue(HWND hwnd,ULONGLONG ullCompleted,ULONGLONG ullTotal )设置进度栏的进度大小,ullCompleted 为已完成值,ullTotal为总值,SetProccessState设置显示状态。最后要先调用release释放组件,然后调用CoUninitialize释放com。

 

我发现windows sdk是个好东西啊,vs2010自带的help也挺好用的。

详情见windows sdk安装目/Samples/winui/shell/appshellintegration/TaskbarPeripheralStatus

vs自带的sdk貌似没有示例,需要单独下载window sdk

 

原创粉丝点击