pb中实现系统托盘
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
pb 程序托盘化(taskbar status area)
一、涉及的API
//托盘程序需要的API
1、shell_notifyicon(long dwmessage,ref nstr_notifyicondata lpdata)
功能:创建、修改、删除托盘图标
参数:dwmessage 0:创建托盘图标;1:修改托盘图标;2:删除图标
lpdata 结构体
结构体定义:
long cbsize 结构体长度,固定为88;
long hwnd 图标消息接收窗口;
long uid 任务栏图标对应的应用程序定义的标识符;
long uflags 结构体成员有效标志,1:hicon有效,2:ucallbackmessage有效,4:sztip有效,可以组合
long ucallbackmessage 返回给窗口hwnd的消息
long hicon 图标
character sztip[64] 鼠标移动到图标时显示的文字
pb声明:
function integer shell_notifyicon (long dwmessage,ref nstr_notifyicondata lpdata) library "shell32" alias for "Shell_NotifyIconA"
2、loadimage(long hinst,string lpszName,long uType ,long cxDesired ,long cyDesired ,long fuLoad )
功能:装载图片
参数:hinst 包含要装载图片的模块实例的句柄,如果是OEM图片,则此参数为0
lpszName 图片文件名(带路径)
uType 装载图片的类型,0:bitmap,2:cursor,1:icon
cxDesired utype为1,2时表示图像的宽度(象素),如果utype为0则必须设为0
cyDesired utype为1,2时表示图像的高度(象素),如果utype为0则必须设为0
fuLoad 设为0
pb声明:
function long loadimage (long hinst,string lpsz,long un1,long n1,long n2,long
un2) library "user32" alias for "LoadImageA"
3、destroyicon(long hicon)
功能:销毁图片
参数:hicon 图片句柄
pb声明:
function long destroyicon (long hicon) library "user32" alias for "DestroyIcon"
4、CreatePopupMenu()
功能:创建一个弹出菜单
pb声明:
Function long CreatePopupMenu() Library "user32"
5、AppendMenu (long hMenu, long wFlags,long wIDNewItem,string lpNewItem)
功能:增加一个菜单项
参数:hMenu 弹出菜单句柄
wFlags 控制菜单项的各种参数(可组合,详细标识请参考MSDN)
wIDNewItem 菜单项ID,通过此ID来确定选择的菜单
lpNewItem 菜单显示文字
pb声明:
Function long AppendMenu (long hMenu, long wFlags,long wIDNewItem,string lpNewItem) Library "user32" Alias for "AppendMenuA"
6、TrackPopupMenu (long hMenu,long wFlags,long xx,long yy,long nReserved,long hwnd,long lprc)
功能:弹出菜单
参数:hmenu 菜单句柄
wflags 弹出菜单显示选项(详细选项请参考MSDN)
xx 弹出菜单的X坐标
yy 弹出菜单的Y坐标
nReserved 设为0
hwnd 弹出菜单对应的窗口
lprc 无效参数(设为0)
Function long TrackPopupMenu (long hMenu,long wFlags,long xx,long yy,long nReserved,long hwnd,long lprc) Library "user32"
7、GetCursorPos (POINT lpPoint)
功能:获取鼠标所在的屏幕位置
参数:lppoint 结构体
结构体定义:
long x x坐标
long y y坐标
pb声明:
Function long GetCursorPos (ref POINT lpPoint) Library "user32"
8、DestroyMenu (long hMenu)
功能:销毁菜单
参数:hMenu 菜单句柄
pb声明:
Function long DestroyMenu (long hMenu) Library "user32" Alias for "DestroyMenu"
9、SetForegroundWindow(ulong hwnd)
功能:将窗口设置在前
参数:hwnd 窗口句柄