关于托盘的一点总结
2006-07-20 11:37:31 来源:WEB开发网核心提示: if ((nID & 0xFFF0)==SC_CLOSE){ //OnClose();本来这个是关闭的这里也改为隐藏,AnimateWindow(GetSafeHwnd(),1000,AW_HIDE|AW_BLEND);KillTimer(0);ShowWindow(SW_HIDE);//
if ((nID & 0xFFF0)==SC_CLOSE){
//OnClose();本来这个是关闭的这里也改为隐藏。
AnimateWindow(GetSafeHwnd(),1000,AW_HIDE|AW_BLEND);
KillTimer(0);
ShowWindow(SW_HIDE);//系统菜单的关闭也改为隐藏。
}
在ShowWindow(SW_HIDE)前面的两句是为了实现一种特效,即是慢慢很温和的隐藏,不过只有这两句还是不行的还应该在stdafx.h的前面加上如下两行代码:
#undef WINVER
#define WINVER 0X500
2、我们来建立一个托盘菜单,ID号为IDR_TUOPAN当我们在托盘上点击右键时,会出现一个菜单,在菜单里我们有:关于、显示(隐藏)、换歌、退出四项。 我们先在头文件VioletPlayDlg.h中自定义一个消息:
#define WM_USER_TRAY_NOTIFICATION (WM_USER+0x101)
注意它的格式。在文件中定义一个托盘变量CSystemTray m_trayIcon,有了这些后我们就可以先做一个托盘雏形了。在主文件VioletPlayDlg.cpp中来产生一个托盘了。我们用Creat()函数定义如下:
m_trayIcon.Create(this, WM_USER_TRAY_NOTIFICATION, "VioletPlay", m_hIcon, IDR_TUOPAN);
其中第二个参数为我们自定义的功能,即出现托盘图标,第三个参数为当我们把鼠标放在图标上时出现的说明文字,第五个参数为当我们单击右键时出现的菜单,由于我们通过这个函数并不能响应右键,所以在这里并不能出现这个菜单,(下文会讲) 当我们的鼠标离开图标的时候出现的说明文字VioletPlay会自动消失,我们通过一个条件语句来实现。首先我们定义一个BOOL变量BOOL start_minimized我们来判断它的值:
更多精彩
赞助商链接