- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实现系统托盘
实现系统托盘
一、添加托盘图标
给程序添加托盘图标的方法在很多VC书中都有实例,通常在程序中按下面的步骤就可以实现:
1、在XXDlg.CPP文件头部加入
#define WM_NOTIFYICON WM_USER+5
NOTIFYICONDATA nd;
2、在程序的初始化中加入下面代码
nd.cbSize= sizeof (NOTIFYICONDATA);
nd.hWnd= m_hWnd;
nd.uID= IDR_MAINFRAME;
nd.uFlags= NIF_ICON|NIF_MESSAGE|NIF_TIP;
nd.uCallbackMessage= WM_NOTIFYICON;
nd.hIcon= m_hIcon;
strcpy(nd.szTip, 我的托盘);
Shell_NotifyIcon(NIM_ADD, nd);
3、在程序的退了函数中加入删除托盘图标语句
Shell_NotifyIcon(NIM_DELETE, nd);
二、在资源中添加菜单
[ 本文属于第41期, 适合初级读者 ]
给托盘添加右击菜单--变化的背景图
南京航空航天大学 张庆利
下载本文示例工程
图1 变化的背景图
给托盘添加右击菜单
一般的商业程序都有托盘图标和在托盘上弹出右击菜单的功能,那么如何给自已的程序添加这样的功能呢?本文通过改变背景图的实例,介绍一种实现托盘上弹出右击菜单的方法。
一、添加托盘图标
给程序添加托盘图标的方法在很多VC书中都有实例,通常在程序中按下面的步骤就可以实现:
1、在XXDlg.CPP文件头部加入
#define WM_NOTIFYICONWM_USER+5
NOTIFYICONDATA nd;
2、在程序的初始化中加入下面代码
nd.cbSize= sizeof (NOTIFYICONDATA);
nd.hWnd= m_hWnd;
nd.uID= IDR_MAINFRAME;
nd.uFlags= NIF_ICON|NIF_MESSAGE|NIF_TIP;
nd.uCallbackMessage= WM_NOTIFYICON;
nd.hIcon= m_hIcon;
strcpy(nd.szTip, 我的托盘);
Shell_NotifyIcon(NIM_ADD, nd);
3、在程序的退了函数中加入删除托盘图标语句
Shell_NotifyIcon(NIM_DELETE, nd);
二、在资源中添加菜单
1、建立菜单
2、建立菜单对应的函数
void CbackdropDlg::OnShow()
{
ShowWindow( SW_SHOWNORMAL);//恢复正常显示
}
void CbackdropDlg::OnExit()
{
::PostQuitMessage(0); //退出
}
void CbackdropDlg::OnHide()
{
ShowWindow(SW_HIDE);//隐藏
}
void CbackdropDlg::OnMin()
{
ShowWindow(SW_SHOWMINIMIZED);//最小化
}
3、在托盘消息响应函数中添加代码 LONG CbackdropDlg::OnNotifyIcon(WPARAM wParam, LPARAM lParam)
{
// 响应在托盘图标上的单击
//wParam中是响应消息的图标ID,lParam中则是Windows的消息
// The backdrop icon sent us a message. Lets see what it is
switch ( lParam )
{
case WM_RBUTTONDOWN:
{
// 用户在托盘图标上单击鼠标右键,弹出菜单
CMenu pMenu;
if (pMenu.LoadMenu(IDR_MENU1))
{
CMenu* pPopup = pMenu.GetSubMenu(0);
ASSERT(pPopup != NULL);
CPoint Point;
if(IsIconic()) pPopup-EnableMenuItem(IDC_MIN,MF_BYCOMMAND |
MF_DISABLED | MF_GRAYED);
if (IsWindowVisible())// 根据对话框窗口的状态对相关菜单项使能
{
if(!IsIconic())
pPopup-EnableMenuItem
文档评论(0)