首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

求教—vb中API函数Shell_NotifyIcon各参数作用,该如何处理

2012-02-13 
求教—vb中API函数Shell_NotifyIcon各参数作用Private Declare Function Shell_NotifyIcon Lib shell32.dl

求教—vb中API函数Shell_NotifyIcon各参数作用
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
'dwMessage指定你要加入、删除、还是修改图标 分别为NIM_ADD、NIM_DELETE和NIM_MODIFY
'lpData指向NOTIFYICONDATA类型变量的指针
Private Const WM_USER As Long = &H400
Private Const NIF_ICON = &H2 'NIF_ICON指定hIcon有效
Private Const NIF_MESSAGE = &H1 'NIF_MESSAGE指定uCallbackMessage有效
Private Const NIF_TIP = &H4 'NIF_TIP指定szTip有效
Private Const WM_MOUSEMOVE As Long = &H200
Private Const NIM_ADD = &H0
Private Const NIF_INFO = &H10
Private Const NIM_MODIFY = &H1
Private Enum bFlag
  NIIF_NONE = &H0
  NIIF_INFO = &H1
  NIIF_WARNING = &H2
  NIIF_ERROR = &H3
  NIIF_EXEICON = &H4
  NIIF_GUID = &H5
  NIIF_ICON_MASK = &HF
  NIIF_NOSOUND = &H10
End Enum
Private Type NOTIFYICONDATA
  cbSize As Long 'cbSize是NOTIFYICONDATA结构的大小
  hwnd As Long 'hWnd是当前窗口的句柄
  uID As Long 'uID指定图标的标识符
  uFlags As Long 'uFlags是一组参数
  uCallbackMessage As Long  
'uCallbackMessage是一个自定义消息,当鼠标在图标所属的正方形区域内有消息发生,比如单击了图标时,系统就会发送一个消息到uCallbackMessage中
  hIcon As Long 'hIcon是图标的句柄
  szTip As String * 128 'szTip指定的文字信息会在你将鼠标移到图标上时以浮动方式显示出来
  dwState As Long
  dwStateMask As Long
  szInfo As String * 256
  uTimeoutAndVersion As Long
  szInfoTitle As String * 64
  dwInfoFlags As Long
End Type
Private Enum TrayRetunEventEnum
  MouseMove = &H200
  LeftDbClick = &H203
End Enum
Private ni As NOTIFYICONDATA
各位高手,帮我解释下没有注释的参数和变量的作用好吧,还有定义的常量有什么含义?比方说:
  Private Const WM_USER As Long = &H400 &H400有什么含义,为什么一定要=&H400 ,=&H200就不行吗?它代表什么,有何作用?
  我是菜鸟,最好能举个例子详细说明下,感激不尽!!

[解决办法]
Private Const WM_USER As Long = &H400 &H400有什么含义,为什么一定要=&H400 ,=&H200就不行吗?它代表什么,有何作用? 
//
这是常量,为什么要定义为&H400,要问微软.

你只需要知道它代表什么就行了.

这个WM_USER,代表用户自定义消息,一般是以这个消息再加个自己的值,作为新的自定义消息,以免与其它系统消息冲突.

具体哪个消息有啥作用,直接查MSDN吧,问别人,最终也是查MSDN,为啥不自己查呢....
[解决办法]
&H400 是用十六进制的方式代表一个值,而参数只有赋予这个值,才能使API函数执行正确的指令;理解成一代号
01,01,我是长江
02,02,我是黄河

[解决办法]
【参数表】
dwMessage ------ Long,下述常数之一:
NIM_ADD
添加指定的图标
NIM_DELETE
删除指定的图标
NIM_MODIFY
修改指定的图标
lpData --------- NOTIFYICONDATA,这个结构的内容因dwMessage参数而异

热点排行