托盘的实现

摘要:
#defineWM_TRAYICON_MSG(WM_USER+100)public:afx_msgvoidOnBnClickedButTuo();BOOLTrayMyIcon(BOOLbAdd=TRUE);LRESULTOnTrayCallBackMsg(WPARAMwparam,LPARAMlparam);添加消息映射ON_MESSAGE(WM_TRAYICON_MSG,OnTrayCallBa
#define WM_TRAYICON_MSG (WM_USER+100)
public:
    afx_msg voidOnBnClickedButTuo();
    BOOL TrayMyIcon(BOOL bAdd=TRUE);
    LRESULT OnTrayCallBackMsg(WPARAM wparam, LPARAM lparam);
添加消息映射
ON_MESSAGE(WM_TRAYICON_MSG, OnTrayCallBackMsg)
//按钮事件,实现托盘
voidCWuMaDlg::OnBnClickedButTuo()
{
    //TODO:  在此添加控件通知处理程序代码
TrayMyIcon();
}
//托盘实现
BOOL CWuMaDlg::TrayMyIcon(BOOL bAdd)
{
    BOOL bRet =FALSE;
    NOTIFYICONDATA tnd;
    tnd.cbSize = sizeof(NOTIFYICONDATA);
    tnd.hWnd =m_hWnd;
    tnd.uID =IDR_MAINFRAME;
    if (bAdd ==TRUE) {
        tnd.uFlags = NIF_MESSAGE | NIF_ICON |NIF_TIP;
        tnd.uCallbackMessage =WM_TRAYICON_MSG;
        tnd.hIcon =LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME));
        _tcscpy_s(tnd.szTip, sizeof(tnd.szTip), _T("無聊辅助v1.0"));
        ShowWindow(SW_MINIMIZE);
        ShowWindow(SW_HIDE);
        bRet = Shell_NotifyIcon(NIM_ADD, &tnd);
    }
    else{
        ShowWindow(SW_SHOWNA);
        SetForegroundWindow();
        bRet = Shell_NotifyIcon(NIM_DELETE, &tnd);
    }
    returnbRet;
}
//消息响应
LRESULT CWuMaDlg::OnTrayCallBackMsg(WPARAM wparam, LPARAM lparam)
{
    switch(lparam)
    {
    caseWM_RBUTTONUP:
    {
                         CMenu mMenu, *pMenu =NULL;
                         CPoint pt;
                         mMenu.LoadMenu(IDR_MENU1);
                         pMenu = mMenu.GetSubMenu(0);
                         GetCursorPos(&pt);
                         SetForegroundWindow();
                         pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, this);
                         break;
    }
    caseWM_LBUTTONDBLCLK:
        ShowWindow(SW_RESTORE);
        SetForegroundWindow();
        TrayMyIcon(FALSE);
        break;
    default:break;
    }
    returnNULL;
}
//右键显示界面
voidCWuMaDlg::OnMenuShow()
{
    ShowWindow(SW_RESTORE);
    TrayMyIcon(FALSE);
}

//退出
voidCWuMaDlg::OnMenuExit()
{
    TrayMyIcon(FALSE);
    OnCancel();
}

免责声明:文章转载自《托盘的实现》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇php中session_start()相关问题分析与解决办法在Debian中启用Bootsplash下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

win32api win32gui win32con 窗口句柄 发送消息 常用方法

Pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量、接口、线程以及COM机制等等。 1.通过类名和标题查找窗口句柄,并获得窗口位置和大小 import win32gui import win32api classname = "MozillaWindowClass" titlen...

教程-Delphi 调用控制面板设置功能

应用程序运行时,有时需要对系统环境有特殊要求。例如,在Delphi数据库应用程序中可能需要进行BDE(Borland Database Engine)或ODBC数据源名称(DSN:Data Source Name)的设置;在网络应用程序中可能需要进行网络配置设置、Modem属性设置或用户拨号连接的帐号和密码的设置并保存在系统中;在CTI(Computer-...

抛异常给前端的方式

1 public class ContentController { @Autowired private ContentService contentService; @RequestMapping("/list/{contentCategoryId}") @ResponseBody pu...

C#学习笔记(22)——C#创建文本文件txt并追加写入数据

ref: https://www.cnblogs.com/Jacklovely/p/7263844.html 说明(2017-7-31 16:25:06): 1. 有两种办法,第一种是用FileStream创建txt,用StreamWriter写入数据,期间还要加上判断,是否存在这个txt文件,如果不存在就创建,存在就追加写入。太麻烦了! 2. 第二种是直...

pwa介绍学习

1.PWA简介: Progressive Web App 是由谷歌提出推广的,在移动端利用提供的标准化框架,在网页应用中实现和原生应用相近的用户体验。 2.PWA到底有哪些过人之处(特性)? 1、Installability(可安装性):添加到主屏2、App Shell:第一次渲染渲个壳、等异步数据来了再填充3、Offline Web App (离线能力)4...

ShellExecute详细用法(可以单独打开一个文件)

ShellExecute的功能是运行一个外部程序,或者打开一个已注册的文件、打开一个目录、打印文件等等功能,它可以打开电脑内的任何文件,也可以打开URL。函数的原型: 1 HINSTANCE ShellExecute( 2 HWND hwnd, 3 LPCTSTR lpOperation, 4 LPCTSTR lpFile, 5 LPCTSTR l...