zoukankan      html  css  js  c++  java
  • 任务栏托盘弹出菜单

    先说一下思路吧。。。。。主要用的的是一个NOTIFYICONDATA结构和Shell_NotifyIcon函数

    其它的就是一些消息响应了

    一、先是自己写一个实现托盘的函数StartTry(),

    nData;
    nData.cbSize = sizeof(NOTIFYICONDATA);
    nData.hWnd = this->m_hWnd;
    nData.uID = IDR_MAINFRAME;
    nData.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
    nData.uCallbackMessage = WM_ONTRY;        //在头文件中自定义WM_ONTRY(#define WM_ONTRY WM_USER+1)消息响应函数nData.hIcon = LoadIcon(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDI_MAINFRAME));
    strcpy(nData.szTip,"sun");
    Shell_NotifyIcon(NIM_ADD, &nData);
    this->ShowWindow(SW_HIDE);
    return TRUE;

    二、写一个停止托盘的函数StopTry()

    NOTIFYICONDATA nData;
     nData.cbSize = sizeof(NOTIFYICONDATA);
     nData.hWnd = this->m_hWnd;
     nData.uID = IDR_MAINFRAME;
     nData.uFlags = NIF_TIP|NIF_MESSAGE|NIF_TIP;

     Shell_NotifyIcon(NIM_DELETE,&nData);

    三、写一个删除托盘的消息响应函数DeleteTry();

    StopTry();
     this->ShowWindow(SW_SHOW);

    四、在WM_ONTRY消息响应函数中对不同的操作进行响应

     switch(lParam)
     {
     case WM_LBUTTONDOWN:
      this->ShowWindow(SW_SHOW);  //显示菜单

      DeleteTry();

     case WM_RBUTTONDOWN:
      {
       POINT point;
       GetCursorPos(&point);
       CMenu menu;
       menu.CreatePopupMenu();
       menu.AppendMenu(MF_BITMAP,WM_DeleteTry,&m_Bitmap[0]);  //右击图片删除菜单
       menu.AppendMenu(MF_BITMAP,WM_DESTROY,&m_Bitmap[1]); //右击图片退出菜单
       menu.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
       break;
      }  
     default:
      {
       CMenu::DeleteTempMap();
       break;
      }

     }

    出现的问题

    menu.CreatePopupMenu();这一句。

    刚开始我是产生一个菜单menu.createMenu(),菜单栏中的图片和文字只出现一小部分

    看来还是做下才知道问题出现在哪。

  • 相关阅读:
    #最小生成树,Trie#CF888G Xor-MST
    #Tarjan#洛谷 5676 [GZOI2017]小z玩游戏
    #区间dp#CF1114D Flood Fill
    #构造,二分#[AGC006B] [AGC006D] Median Pyramid
    #0/1分数规划#AT1807 食塩水
    #笛卡尔树#洛谷 3793 由乃救爷爷
    #同余最短路#洛谷 2371 [国家集训队]墨墨的等式
    awk命令使用
    k8s快速删除所有退出的pod
    ratticdb密码管理工具安装使用
  • 原文地址:https://www.cnblogs.com/ccmfc/p/1717531.html
Copyright © 2011-2022 走看看