MFC将程序添加到系统图标栏,系统托盘栏
来源:互联网 发布:全国各省经纬度数据 编辑:程序博客网 时间:2024/04/18 23:56
在对话框的初始化OnInitDialog()中:
NOTIFYICONDATA tnid;
tnid.cbSize = sizeof(NOTIFYICONDATA);
tnid.hWnd = m_hWnd;
tnid.uID = IDR_MAINFRAME;
tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
//MYWM_NOTIFYICON为自定义消息
tnid.uCallbackMessage = MYWM_NOTIFYICON;
tnid.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);//显示图标
// 工具提示信息
CString lpszTip = "我的小程序.";
if (lpszTip)
lstrcpyn(tnid.szTip, lpszTip, sizeof(tnid.szTip));
else
tnid.szTip[0] = '\0';
Shell_NotifyIcon(NIM_DELETE, &tnid);
这样,通知栏已经有了一个自己的图标了。
程序栏有了图标还不够,需要添加鼠标消息:
自定义消息:
#define MYWM_NOTIFYICON WM_USER + 1
添加消息响应函数:
afx_msg void On_MProc(WPARAM wParam, LPARAM lParam) ;
ON_MESSAGE(MYWM_NOTIFYICON,On_MProc)
编写消息函数:
void CHTMLDlgDlg::On_MProc(WPARAM wParam, LPARAM lParam)
{
UINT uID;
UINT uMouseMsg;
uID = (UINT) wParam;
uMouseMsg = (UINT) lParam;
CPoint point;
GetCursorPos(&point);
CMenu menu; //这个菜单需要自己添加一个菜单,菜单项为显示和关闭。这样在鼠标右键单击的时候,就有了菜单。
menu.LoadMenu(IDR_MENU);
CMenu* pPopup=menu.GetSubMenu(0); //get pointer to popup menu
switch (uMouseMsg)
{
case WM_RBUTTONDOWN:
pPopup->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this); //弹出菜单
break;
case WM_LBUTTONDBLCLK: //双击菜单显示
ShowWindow(TRUE);
//处理命令消息,如菜单点击
break;
}
if(menu.m_hMenu)
menu.DestroyMenu(); //销毁菜单
}
- MFC将程序添加到系统图标栏,系统托盘栏
- MFC 添加系统托盘图标
- MFC添加系统托盘图标
- MFC 添加系统栏图标
- MFC对话框添加系统栏图标
- MFC程序最小化到系统托盘
- MFC程序最小化到系统托盘
- MFC程序最小化到系统托盘
- MFC程序最小化到系统托盘
- MFC程序最小化到系统托盘
- 将程序最小化到系统托盘
- 实现将程序图标显示在系统托盘
- 转载:MFC程序最小化到系统托盘
- C#实现WinForm程序的动态系统托图标 关闭主窗体时最小化到系统托盘
- VC 制作系统托盘程序实现将窗口最小化到系统托盘
- 将“显示桌面”图标添加到快速启动栏
- 添加系统栏图标
- 添加系统托盘图标
- 核心定位和地图的相关功能
- MFC弹出菜单
- Cisco产品时钟设置
- Android JNI和NDK关系
- 数据库时间+上1秒
- MFC将程序添加到系统图标栏,系统托盘栏
- Qt自定义信号槽
- 共享变量与数据竞争
- java自带MD5加密Demo
- 学习中的经验和教训
- centos安装eric4出现“No module named QtHelp”的解决办法
- JSP自制标签。以一只真正的菜鸟角度来审视自制标签。。。
- assertion failed: Path for IClasspathEntry must be absolute解决方法
- 徒弟离职引发的思考