;功能:演示使用系统托盘图标,显示BalloonTooltip
;作者:
PurpleEndurer | 紫郢剑侠㊣ 于广西河池
;日期内容
;----------------------------------------------------------------------
;2007.08.23完成。
;2007.08.21创建。
.386
.modelflat,stdcall
optioncasemap:none
include/masm32/include/windows.inc
include/masm32/include/kernel32.inc
includelib/masm32/lib/kernel32.lib
;include/masm32/include/ole32.inc
;includelib/masm32/lib/ole32.lib
include/masm32/include/shell32.inc
includelib/masm32/lib/shell32.lib
include/masm32/include/user32.inc
includelib/masm32/lib/user32.lib
;include/masm32/include/advapi32.inc
;includelib/masm32/lib/advapi32.lib
;include/masm32/include/comdlg32.inc
;includelib/masm32/lib/comdlg32.lib
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
;prototype
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
WinMainPROTO:DWORD,:DWORD,:DWORD,:DWORD
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
;const
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
WM_SHELLNOTIFYequWM_USER+200
IDI_TRAYequ0
NOTIFYICONDATA50struct
cbSizedword?
hwndHANDLE?
uIDdword?
uFlagsdword?
uCallbackMessagedword?
hIconHANDLE?
szTipdb128dup(?);Version5.0为128个,以前为64个
dwStatedword?;图标状态:NIS_HIDDEN:图标是隐藏的;NIS_SHAREDICON:图标是共享的
dwStateMaskdword?;指明dwState的哪些位可以被读取,如设置为NIS_HIDDEN则表示图标的隐藏状态可以被读取
szInfobyte256dup(?);气泡提示内容
union
uTimeoutdd?;Union类型系统默认设置最短10秒,最长30秒
uVersiondd?
ends
szInfoTitlebyte64dup(?);气泡提示标题
dwInfoFlagsdword?;指明是否在气泡提示上显示图标
NOTIFYICONDATA50ends
NOTIFYICON_VERSION=3
NOTIFYICON_OLDVERSION=0
NIM_ADD=0
NIM_MODIFY=1
NIM_DELETE=2
NIM_SETFOCUS=3
NIM_SETVERSION=4
NIF_MESSAGE=1;uCallbackMessage项包含了有效的信息
NIF_ICON=2;hIcon项包含了有效的信息
NIF_TIP=4;szTip项包含了有效的信息
NIF_STATE=8
NIF_INFO=010h
NIS_HIDDEN=1
NIS_SHAREDICON=2
;/---气泡提示信息图标控制
NIIF_NONE=0;不显示图标
NIIF_INFO=1;“信息”图标(蓝色)
NIIF_WARNING=2;“警告”图标(黄色)
NIIF_ERROR=3;“错误”图标(红色)
;---/
NIN_SELECT=WM_USER+0;
NIN_BALLOONSHOW=WM_USER+2;当气泡提示显示后外壳发送此消息
NIN_BALLOONHIDE=WM_USER+3;当气泡提示消失时(比如通知栏图标被删除)外壳发送此消息,但气泡提示由于超时而消失不会产生此消息
NIN_BALLOONTIMEOUT=WM_USER+4;当气泡提示由于超时而消失时外壳发送此消息
NIN_BALLOONUSERCLICK=WM_USER+5;当用户点击鼠标时(点击气泡提示和通知栏图标均可)外壳发送此消息
NINF_KEY=1
NIN_KEYSELECT=NIN_SELECTorNINF_KEY
IDC_ckbShowTrayIconequ100
IDC_ckbShowBalloonequ110
c_AppQuitequ1b
c_IconShowedequ10b
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
.data
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
g_szClassNamelabelbyte
g_szAppNamedb"Balloon_Tooltip_Demo",0
g_szButtondb"button",0
g_szShowTrayIcondb"显示托盘图标",0
g_szShowBalloondb"显示气泡信息",0
g_szAppQuitdb"程序退出",0
g_szInfodb"这是一个提示信息内容!",0
g_szInfoTitledb"这是一个提示信息标题!",0
g_szClickTrayIcondb"你击中了系统托盘区的图标",0
g_szClickBalloonOrIcondb"你击中了气泡或系统托盘区的图标",0
g_szMessageHidedb"信息隐藏了",0
g_szShowMessageNowdb"开始显示信息了",0
g_szMessageTimeOutdb"信息显示时间到了",0
g_dwFlagdword0
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
.data?
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
g_hInstanceHINSTANCE?
g_hWndMainHWND?
g_stNoteIconNOTIFYICONDATA50<>
.code
start:
invokeGetModuleHandle,NULL
movg_hInstance,eax
invokeWinMain,g_hInstance,NULL,NULL,SW_SHOWDEFAULT
invokeExitProcess,eax
WinMainprochInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
LOCALwc:WNDCLASSEX
LOCALmsg:MSG
LOCALhwnd:HWND
movwc.cbSize,SIZEOFWNDCLASSEX
movwc.style,CS_HREDRAWorCS_VREDRAWorCS_DBLCLKS
movwc.lpfnWndProc,OFFSETWndProc
movwc.cbClsExtra,NULL
movwc.cbWndExtra,NULL
moveax,hInst
movwc.hInstance,eax
movwc.hbrBackground,COLOR_BTNSHADOW
movwc.lpszMenuName,NULL
movwc.lpszClassName,OFFSETg_szClassName
invokeLoadIcon,NULL,IDI_APPLICATION
movwc.hIcon,eax
movwc.hIconSm,eax
invokeLoadCursor,NULL,IDC_ARROW
movwc.hCursor,eax
invokeRegisterClassEx,addrwc
invokeCreateWindowEx,NULL,addrg_szClassName,addrg_szAppName,/
WS_OVERLAPPED+WS_CAPTION+WS_SYSMENU,100,100,300,100,/
NULL,NULL,hInst,NULL;WS_VISIBLE
movhwnd,eax
invokeShowWindow,hwnd,SW_SHOW
.whileTRUE
invokeGetMessage,ADDRmsg,NULL,0,0
.BREAK.IF(!eax)
invokeTranslateMessage,ADDRmsg
invokeDispatchMessage,ADDRmsg
.endw
moveax, msg.wParam
ret
WinMainendp
WndProcprochWndMain:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
.ifuMsg==WM_DESTROY
invokeShell_NotifyIcon,NIM_DELETE,addrg_stNoteIcon
invokePostQuitMessage,NULL
.elseifuMsg==WM_CLOSE
testg_dwFlag,c_IconShowed
jz@DestroyWin
testg_dwFlag,c_AppQuit
.ifZERO?
movg_stNoteIcon.uTimeout,20
invokelstrcpy,addrg_stNoteIcon.szInfo,addrg_szAppQuit
invokeShell_NotifyIcon,NIM_MODIFY,addrg_stNoteIcon
org_dwFlag,c_AppQuit
invokeShowWindow,g_hWndMain,SW_HIDE
.else
@DestroyWin:
invokeDestroyWindow,g_hWndMain
.endif
.elseifuMsg==WM_CREATE
moveax,hWndMain
movg_hWndMain,eax
invokeRtlZeroMemory,addrg_stNoteIcon,sizeofg_stNoteIcon
moveax,g_hWndMain
movg_stNoteIcon.hwnd,eax
movg_stNoteIcon.cbSize,sizeofg_stNoteIcon
movg_stNoteIcon.uID,IDI_TRAY
movg_stNoteIcon.uFlags,NIF_ICON+NIF_MESSAGE+NIF_TIP
movg_stNoteIcon.uCallbackMessage,WM_SHELLNOTIFY
invokeLoadIcon,NULL,IDI_WINLOGO
movg_stNoteIcon.hIcon,eax
invokelstrcpy,addrg_stNoteIcon.szTip,addrg_szAppName
invokeCreateWindowEx,NULL,addrg_szButton,addrg_szShowTrayIcon,/
WS_BORDER+WS_CHILD+WS_VISIBLE+BS_AUTOCHECKBOX,5,5,130,20,/
g_hWndMain,IDC_ckbShowTrayIcon,g_hInstance,NULL
invokeCreateWindowEx,NULL,addrg_szButton,addrg_szShowBalloon,/
WS_BORDER+WS_CHILD+WS_VISIBLE,5,30,130,20,/
g_hWndMain,IDC_ckbShowBalloon,g_hInstance,NULL
.elseif(uMsg==WM_COMMAND)
moveax,wParam
movedx,eax
shredx,16
.IF(dx==BN_CLICKED)
.if(eax==IDC_ckbShowTrayIcon)
testg_dwFlag,c_IconShowed
.ifZERO?
moveax,NIM_ADD
org_dwFlag,c_IconShowed
.else
moveax,NIM_DELETE
andg_dwFlag,notc_IconShowed
.endif
invokeShell_NotifyIcon,eax,addrg_stNoteIcon
.elseif(eax==IDC_ckbShowBalloon)
xoreax,eax
movg_stNoteIcon.dwState,eax
movg_stNoteIcon.dwStateMask,eax
invokelstrcpy,addrg_stNoteIcon.szInfo,addrg_szInfo
movg_stNoteIcon.uTimeout,200
invokelstrcpy,addrg_stNoteIcon.szInfoTitle,addrg_szInfoTitle
movg_stNoteIcon.dwInfoFlags,NIIF_INFO
movg_stNoteIcon.uFlags,NIF_ICON+NIF_MESSAGE+NIF_TIP+NIF_INFO
moveax,NIM_MODIFY
testg_dwFlag,c_IconShowed
.ifZERO?
org_dwFlag,c_IconShowed
invokeSendDlgItemMessage,g_hWndMain,IDC_ckbShowTrayIcon,BM_SETCHECK,BST_CHECKED,0
moveax,NIM_ADD
.endif
invokeShell_NotifyIcon,eax,addrg_stNoteIcon
.endif
.ENDIF
.elseifuMsg==WM_SHELLNOTIFY
.ifwParam==IDI_TRAY
moveax,lParam
.if(eax==NIN_BALLOONSHOW);当气泡提示显示后外壳发送此消息
invokeMessageBox,g_hWndMain,addrg_szShowMessageNow,addrg_szAppName,MB_ICONINFORMATION
.else
testg_dwFlag,c_AppQuit
.ifZERO?
.if(eax==NIN_BALLOONHIDE)
invokeMessageBox,g_hWndMain,addrg_szMessageHide,addrg_szAppName,MB_ICONINFORMATION
.elseif(eax==WM_RBUTTONDOWN||eax==WM_LBUTTONDOWN)
invokeMessageBox,g_hWndMain,addrg_szClickTrayIcon,addrg_szAppName,MB_ICONINFORMATION
.elseif(eax==NIN_BALLOONTIMEOUT);当气泡提示由于超时而消失时外壳发送此消息
invokeMessageBox,g_hWndMain,addrg_szMessageTimeOut,addrg_szAppName,MB_ICONINFORMATION
.elseif(eax==NIN_BALLOONUSERCLICK)
invokeMessageBox,g_hWndMain,addrg_szClickBalloonOrIcon,addrg_szAppName,MB_ICONINFORMATION
.endif
.else
invokeSendMessage,g_hWndMain,WM_CLOSE,0,0
.endif
.endif
.endif
.else
invokeDefWindowProc,hWndMain,uMsg,wParam,lParam
ret
.endif
xoreax,eax
ret
WndProcendp
endstart
分享到:
相关推荐
While searching around, I found a great article about the Balloon ToolTip control (actually about the ToolTip control, in all its shapes and uses). This article (which could be found at CodeProject ...
基于SystemTray.dll实现的VB气泡提示功能,类似于Windows系统气泡弹出框,若自己用的话,代码修改下,控件已打包在内。编译后在程序窗口中点击“Balloon”窗口即可。
Java balloon Tip Tool Java balloon Tip Tool
Train on the toy Balloon dataset and implement color splash effect. Copyright (c) 2018 Matterport, Inc. Licensed under the MIT License (see LICENSE for details) Written by Waleed Abdulla
balloon.xsl 这个是 系统文件
Mask_Rcnn+balloon数据集+coco模型+ballon模型
v工具提示 ... 使用v-tooltip指令: < button v-tooltip =" 'You have ' + count + ' new messages.' " > 使用v-popover组件: <!-- This will be the popover target (for the events and p
balloon权重文件
网页包 :balloon: 准系统和模板。 叉起来。产品特点 :fire: 准系统 (字面上 :face_screaming_in_fear: ) :high_voltage: 使用每个env配置快速构建( , , ...) .js (ES6,Babel,Polyfills) .css (Sass,Post...
上载一份个人修改的linux系统上Xen balloon的驱动程序,欢迎下载
iOS游戏应用源代码——andresbonilla-Balloon-Pop-Fever.zip
一个轻量级弹出式工具提示,完全可自定义的箭头和动画。
balloon.css-纯CSS3简单实用的tooltips工具提示效果库
balloon
摘要:VC/C++源码,界面编程,气泡提示 VC++ BalloonTooltip源码,实现类似windows气泡的窗体提示功能,蓝色的边框,带小缺口,似乎更人性化一些,可应用到窗体的输入框、下拉列表框等地方,指导用户需要输入的数据...
Balloon -
Mask_RCNN训练模型:mask_rcnn_balloon.h5 和 mask_rcnn_coco.h5,百度云连接!
用c#实现的功能强大的toolTip控件,可进行自定义和交互。含源码和demo演示。