如何添加任务托盘的图标

如何添加任务托盘的图标,第1张

以上 *** 作了。软件下载完毕后进行解压,由于是绿色软件并不需安装,双击应用程序图标运行Window Minimizer,这时该软件程序图标会显示在系统托盘区域中。如果想将某个任务栏窗口最小化到系统托盘,可以直接在其窗口按钮上单击一下鼠标右键,然后在d出的菜单中选择最下方的“最小化到托盘区”一项命令就行了,此时该窗口图标便移动到托盘中去了。以后如想将其恢到任务栏中,再用鼠标左键在托盘中点击一下该窗口图标就可以了。

VS2013+Qt

一.设置程序图标

1.在创建项目时注意选择

它会自动生成一个*.ico文件,若不想用,直接替换掉即可。

2.若忘记选择这一步,则可以自己手动创建一个*.rc文件,内容参考例子,添加到项目里,效果一样。

例如:IDI_ICON1   ICON   DISCARDABLE     “child.ico"

3.也可在程序里使用setWindowIcon()来添加

例如:

QIcon icon("D:\\Qt\\project(creator)\\serial\\1.jpg")

w.setWindowIcon(icon)

二.设置系统托盘图标

.h文件:

例如:QStstemIcon m_sysTray

.cpp文件:

m_sysTray.setToolTip("")//设置提示文字

m_sysTray.setIcon(QIcon("路径"))//设置图标

QMenu* menu = new QMenu()//托盘菜单

menu->addAction(ui.actionExit)//可添加托盘右键菜单

m_sysTray.setContextMenu(menu)//设置右键菜单

m_sysTray.show()//显示

先新建一个模块把下面的内容复制进去 Option Explicit

'判断窗体是是否是最小化了,如果返回的值不为0则窗体最小化了

Public Declare Function IsIconic Lib "user32" (ByVal Hwnd As Long) As Long

'把图标加入任务栏的函数

Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long

'SHELL_NOTIFYICON函数要用到的 dwMessage 参数中的常数数

Public Const NIM_ADD = &H0

Public Const NIM_DELETE = &H2

Public Const NIM_MODIFY = &H1

Public Const NIF_TIP = &H4

Public Const NIF_MESSAGE = &H1

Public Const NIF_ICON = &H2

Public Const WM_RBUTTONDOWN = &H204

Public Const WM_LBUTTONDOWN = &H201

Public Type NOTIFYICONDATA

cbSize As Long

Hwnd As Long

uID As Long

uFlags As Long

uCallbackMessage As Long

hIcon As Long

szTip As String * 64

End Type

'把图标加入到任务栏目的系统区

Public Function Add_Icon(Hwnd As Long, sTip As String, hIcon As Long, iId As Long) As Long

Dim IconV As NOTIFYICONDATA

With IconV

.Hwnd = Hwnd

.szTip = sTip + Chr$(0)

.hIcon = hIcon

.uID = iId

.uCallbackMessage = WM_RBUTTONDOWN

.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP

.cbSize = Len(IconV)

End With

Add_Icon = Shell_NotifyIcon(NIM_ADD, IconV)

End Function

'删除任务栏目中的图标

Public Function Del_Icon(Hwnd As Long, iId As Long) As Long

Dim IconV As NOTIFYICONDATA

With IconV

.Hwnd = Hwnd

.uID = iId

End With

Del_Icon = Shell_NotifyIcon(NIM_DELETE, IconV)

End Function

'更改图标

Public Function Modify_Icon(Hwnd As Long, sTip As String, hIcon As Long, iId As Long) As Long

Dim IconV As NOTIFYICONDATA

With IconV

.Hwnd = Hwnd

.szTip = sTip + Chr$(0)

.hIcon = hIcon

.uID = iId

.uCallbackMessage = WM_RBUTTONDOWN

.uFlags = NIF_MESSAGE Or NIF_TIP Or NIF_ICON

.cbSize = Len(IconV)

End With

Modify_Icon = Shell_NotifyIcon(NIM_MODIFY, IconV)

End Function如果你想要把图标加到任务栏的托盘区的话,就用Add_Icon(me.hwnd,me.caption,me.icon,0) 就行了,删除就用 Delete_Icon(me.hwnd,0) 修改的就不用我说了吧~~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11634505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存