|
发表于 2020-2-13 19:30:01
|
显示全部楼层
你这段代码大概跟那里看的?最重要的那断你不帖,帖这段你认为有用吗?
好在托盘的代码到处都有了。
dwState 是 m_IconData的一个属性,你可以这么认为。
而m_IconData是定义NOTIFYICONDATA结构体的。
如果没有错,我认为你的代码中应该有这么一句: Dim m_IconData As NOTIFYICONDATA
这个结构体,你可以这么分解
Private Type NOTIFYICONDATA
cbSize As Long ' 结构大小(字节)
hwnd As Long ' 处理消息的窗口的句柄
uId As Long ' 唯一的标识符
uFlags As Long ' Flags
uCallBackMessage As Long ' 处理消息的窗口接收的消息
hIcon As Long ' 托盘图标句柄
szTip As String * 128 ' Tooltip 提示文本
dwState As Long ' 托盘图标状态
dwStateMask As Long ' 状态掩码
szInfo As String * 256 ' 气球提示文本
uTimeoutOrVersion As Long ' 气球提示消失时间或版本
' uTimeout - 气球提示消失时间(单位:ms, 10000 -- 30000)
' uVersion - 版本(0 for V4, 3 for V5)
szInfoTitle As String * 64 ' 气球提示标题
dwInfoFlags As Long ' 气球提示图标
End Type
如果你无法理解这个结构体,你就去查MSDN,MSDN已经详细说明
dwState
Version 5.0. State of the icon. There are two flags that can be set independently. Flag Description
NIS_HIDDEN The icon is hidden.
NIS_SHAREDICON The icon is shared.
你的代码中应该有以下定义:
' dwState to NOTIFYICONDATA structure
Private Const NIS_HIDDEN = &H1 ' 隐藏图标
Private Const NIS_SHAREDICON = &H2 ' 共享图标
这里面已经说明了,dwState As Long ' 托盘图标状态
而dwStateMask在MSDN的解释是
dwStateMask
Version 5.0. A value that specifies which bits of the state member are retrieved or modified. For example, setting this member to NIS_HIDDEN causes only the item's hidden state to be retrieved.
所以dwstate的 数值是要和dwstatemask做and操作得出来的,只要dwstatemask是0,那么无论怎么样dwstate都是为0的。这也就是dwstate=0的原因。
实际上,你把这句话注释点,程序也是能运行的
|
|