使用CTrayIconDialog开发包可以在最短时间内将你的对话框程序加上通知栏图标及菜单。
CTrayIconDialog包主要包含2个类:CTrayIconDialog和CTrayIcon。前者完成对话框对TrayIcon的支持,后者则专门实现对TrayIcon的封装。
使用CTrayIconDialog包的步骤非常简单。
首要条件是你的应用必须是一个基于对话框的应用,或者你需要加上TrayIcon的窗口必须是个对话框。接下来你需要将CTrayIconDialog设置成你的对话框的基类,也就是说,你必须将CDialog替换成CTrayIconDialog。
记住,与你的对话框相关的所有的CDialog都要换成CTrayIconDialog。包括BEGIN_MESSAGE_MAP里面,还有一些函数里对基类CDialog函数的调用,等等。
替换完毕,你的程序运行时就会出现TrayIcon,如图所示:
![trayicon2[1,350字节]](/upload/2004/04/1047343490808.gif)
默认的图标是空的,提示文字告诉你:请使用GetTrayIcon()->Modify来设置你的图标。你可以照办,示例程序里面在CTrayIconDlgDemoDlg::OnInitDialog()里面就增添了以下语句:
这样就为TrayIcon设置了图标和菜单。
CTrayIconDialog的类定义如下:
你可以调用FlashTrayIcon来闪动图标,如示例程序中的:
OnTrayIconNotify、OnTrayIconRButtonUp、OnTrayIconLButtonDbclk以及OnTrayIconLButtonUp允许你更进一步地控制对TrayIcon的消息响应。
GetTrayIcon()返回TrayIcon对象,它的类定义如下:
只要你愿意,你还可以通过CTrayIcon来设置TrayIcon的左键菜单。
最后还需要说明的是,快照里面已经显示出TrayIcon的菜单是带有图标的。这得益于CCoolMenu,只要你再准备一个ToolBar资源,将它的ID与菜单资源的ID设置成一样,并且每个ToolBarButton的ID与菜单项的ID保持一致,生成的菜单就自然带上图标了:)是不是很方便?赶快下载试用吧。
该开发包中除了CCoolMenu是白乔借鉴Brent Corkum并在其基础上做了一些修改的;其它类皆为白乔自行设计,请大家放心使用:)