一.设置程序图标
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) 修改的就不用我说了吧~~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)