c++ - win32 任务栏进度如何实现?

【字号: 日期:2023-05-10浏览:9作者:雯心

问题描述

c++ - win32 任务栏进度如何实现?

类似迅雷这种。任务栏上面会显示 下载的进度。还有鼠标放上去会显示自定义控件是怎么做的?c++ - win32 任务栏进度如何实现?

问题解答

回答1:

SetProgressValue Method http://msdn.microsoft.com/en-us/library/dd391698(VS.85).aspx

SetProgressState Method http://msdn.microsoft.com/en-us/library/dd391697(VS.85).aspx

回答2:

在MFC中:

MSDN - ITaskbarList3 Interface

初始化COM接口

CoCreateInstance( CLSID_TaskbarList, nullptr, CLSCTX_ALL, __uuidof(ITaskbarList3), (LPVOID*)&m_pTL3 );

注册消息

static const UINT WM_TBC = RegisterWindowMessage(TEXT('TaskbarButtonCreated'));

显示状态

m_pTL3->SetProgressState(GetSafeHwnd(), TBPF_ERROR); m_pTL3->SetProgressState(GetSafeHwnd(), TBPF_PAUSE); m_pTL3->SetProgressState(GetSafeHwnd(), TBPF_NORMAL);

显示进度

m_pTL3->SetProgressValue(GetSafeHwnd(), 50, 100);

释放

m_pTL3->Release(); m_pTL3 = nullptr;

回答3:

使用QWinExtra可以实现。pro文件添加:QT += winextra。参考QWinTaskbarButton,QWinTaskbarProgress,QWinThumbnailToolBar,QWinThumbnailToolButton这四个类。可以参考Qt Examples里面的winextra/music player。

相关文章: