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(),菜单栏中的图片和文字只出现一小部分

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

  • 相关阅读:
    博客园的第一篇博客
    I-如何办好比赛
    塞特斯玛斯塔
    字典序最大的子序列
    百练POJ 1657:Distance on Chessboard
    百练POJ2750:鸡兔同笼
    HDU3790最短路径问题
    HDU 2544最短路Dijkstra算法
    快速幂【倍增+二分】
    树的高度
  • 原文地址:https://www.cnblogs.com/ccmfc/p/1717531.html
Copyright © 2011-2022 走看看