http://baike.baidu.com/view/1873525.htm
主要代码

IDR_MAINFRAME equ 1004
WM_SHELLNOTIFY equ WM_USER+1 ;自定义消息 WM_USER+数值
.data
szTstip db 'ASM 托盘图标',0 ;提示字符串
.data?
hInstance dd ? ;模块句柄
hMain dd ? ;对话框句柄
szFileNameBuffer db MAX_PATH dup (?)
stIcon NOTIFYICONDATA <>
;;;;;模态对话框过程中的代码
.elseif uMsg==WM_SIZE ;最小化时 接收WM_SIZE消息,wParam参数的值为SIZE_MINIMIZED。
.if wParam==SIZE_MINIMIZED
mov stIcon.cbSize,sizeof NOTIFYICONDATA
push hMain
pop stIcon.hIcon
mov stIcon.uID,IDR_MAINFRAME
mov stIcon.uFlags,NIF_ICON+NIF_MESSAGE+NIF_TIP
mov stIcon.uCallbackMessage,WM_SHELLNOTIFY
invoke LoadIcon,NULL,IDI_WINLOGO
mov stIcon.hIcon,eax
invoke lstrcpy,addr stIcon.szTip,addr szTstip
invoke ShowWindow,hMain,SW_HIDE
invoke Shell_NotifyIcon,NIM_ADD,addr stIcon
.endif
.elseif uMsg==WM_SHELLNOTIFY ;自定义的消息 wParam的值是图标的ID ,lParam的值是鼠标的动作
.if wParam==IDR_MAINFRAME
.if lParam==WM_LBUTTONDBLCLK ;鼠标左键双击
invoke ShowWindow,hMain,SW_RESTORE ;SW_RESTORE消息返回之前的窗口位置,比如最小最大之前的状态
invoke Shell_NotifyIcon,NIM_DELETE,addr stIcon;删除小图标
.endif
.endif
WM_SHELLNOTIFY equ WM_USER+1 ;自定义消息 WM_USER+数值
.data
szTstip db 'ASM 托盘图标',0 ;提示字符串
.data?
hInstance dd ? ;模块句柄
hMain dd ? ;对话框句柄
szFileNameBuffer db MAX_PATH dup (?)
stIcon NOTIFYICONDATA <>
;;;;;模态对话框过程中的代码
.elseif uMsg==WM_SIZE ;最小化时 接收WM_SIZE消息,wParam参数的值为SIZE_MINIMIZED。
.if wParam==SIZE_MINIMIZED
mov stIcon.cbSize,sizeof NOTIFYICONDATA
push hMain
pop stIcon.hIcon
mov stIcon.uID,IDR_MAINFRAME
mov stIcon.uFlags,NIF_ICON+NIF_MESSAGE+NIF_TIP
mov stIcon.uCallbackMessage,WM_SHELLNOTIFY
invoke LoadIcon,NULL,IDI_WINLOGO
mov stIcon.hIcon,eax
invoke lstrcpy,addr stIcon.szTip,addr szTstip
invoke ShowWindow,hMain,SW_HIDE
invoke Shell_NotifyIcon,NIM_ADD,addr stIcon
.endif
.elseif uMsg==WM_SHELLNOTIFY ;自定义的消息 wParam的值是图标的ID ,lParam的值是鼠标的动作
.if wParam==IDR_MAINFRAME
.if lParam==WM_LBUTTONDBLCLK ;鼠标左键双击
invoke ShowWindow,hMain,SW_RESTORE ;SW_RESTORE消息返回之前的窗口位置,比如最小最大之前的状态
invoke Shell_NotifyIcon,NIM_DELETE,addr stIcon;删除小图标
.endif
.endif