zoukankan      html  css  js  c++  java
  • 托盘的实现

    #define WM_TRAYICON_MSG (WM_USER+100)
    public:
        afx_msg void OnBnClickedButTuo();
        BOOL TrayMyIcon(BOOL bAdd=TRUE);
        LRESULT OnTrayCallBackMsg(WPARAM wparam, LPARAM lparam);
    添加消息映射
      ON_MESSAGE(WM_TRAYICON_MSG, OnTrayCallBackMsg)
    //按钮事件,实现托盘
    void CWuMaDlg::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);
        }
        return bRet;
    }
    //消息响应
    LRESULT CWuMaDlg::OnTrayCallBackMsg(WPARAM wparam, LPARAM lparam)
    {
        switch (lparam)
        {
        case WM_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;
        }
        case WM_LBUTTONDBLCLK:
            ShowWindow(SW_RESTORE);
            SetForegroundWindow();
            TrayMyIcon(FALSE);
            break;
        default:break;
        }
        return NULL;
    }
    //右键显示界面
    void CWuMaDlg::OnMenuShow()
    {
        ShowWindow(SW_RESTORE);
        TrayMyIcon(FALSE);
    }
    
    //退出
    void CWuMaDlg::OnMenuExit()
    {
        TrayMyIcon(FALSE);
        OnCancel();
    }
  • 相关阅读:
    JavaScript是单线程的
    JavaScript异步
    对象和文本间的转换
    json注意事项
    什么是 JSON?
    定义 Teacher() 构造器函数
    给每一个缩略图添加点击处理器
    新的事件触发机制被定义在 Document Object Model (DOM) Level 2 Events Specification,
    事件在浏览器窗口中
    在代码中做决定 — 条件在任何程序语言中
  • 原文地址:https://www.cnblogs.com/wumac/p/4502328.html
Copyright © 2011-2022 走看看