zoukankan      html  css  js  c++  java
  • [VC++]最小化图标至托盘中

        经常都会看到最小化程序后就会在任务栏的托盘中保留一个小图标,即把窗口最小化至托盘中。实现起来很简单,只要明白它使用到的结构和一个Shell函数即可完成。但是如果要制作其他的菜单,需要另外制作,今天暂且不讨论。

        首先来看一下这个托盘的结构,定义如下所示。
     1 typedef struct _NOTIFYICONDATAW {
     2     DWORD cbSize;//一般为sizeof(NOTIFYICONDATA);
     3     HWND hWnd;//this->m_hWnd;或theApp.m_pMainWnd->m_hWnd;
     4     UINT uID;//一般为1,此处ID和前一个hWnd共同来识别窗口;
     5     UINT uFlags;//NIF_ICON|NIF_MESSAGE;
     6     UINT uCallbackMessage;//自定义消息#define WM_TRAY_MESSAGE (WM_USER + 1)),此处的WM_TRAY_MESSAGE
     7     HICON hIcon;
     8 #if (NTDDI_VERSION < NTDDI_WIN2K)
     9     WCHAR  szTip[64];
    10 #endif
    11 #if (NTDDI_VERSION >= NTDDI_WIN2K)
    12     WCHAR  szTip[128];
    13     DWORD dwState;
    14     DWORD dwStateMask;
    15     WCHAR  szInfo[256];
    16     union {
    17         UINT  uTimeout;
    18         UINT  uVersion;  // used with NIM_SETVERSION, values 0, 3 and 4
    19     } DUMMYUNIONNAME;
    20     WCHAR  szInfoTitle[64];
    21     DWORD dwInfoFlags;
    22 #endif
    23 #if (NTDDI_VERSION >= NTDDI_WINXP)
    24     GUID guidItem;
    25 #endif
    26 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
    27     HICON hBalloonIcon;
    28 #endif
    29 } NOTIFYICONDATAW, *PNOTIFYICONDATAW;
        以上结构作为参数被Shell函数BOOL Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA pnid );调用。而其中的dwMessage有三个可选参数:NIM_ADDNIM_DELETENIM_MODIFY功能分别是添加删除以及修改托盘中的图标.当然最后要把窗口给隐藏起来啦:
    1 //此处也可在其他地方调用。
    2 theApp.m_pMainWnd->ShowWindow(SW_MINIMIZE);
    3 //this->ShowWindow(SW_MINIMIZE);
    4 theApp.m_pMainWnd->ShowWindow(SW_HIDE);
    5 //this->ShowWindow(SW_HIDE);
        将上述代码整理后,只要将Sheel_NotifyIcon的调用放到min按钮的事件中执行即可。
  • 相关阅读:
    Maven中使用描述文件切换环境配置
    整合MyBatis到Spring中实现Dao层自动装配
    使用MyBatis搭建项目时报 java.io.IOException: Could not find resource
    数据库CPU占用高排查
    JS 根据时区获取时间
    国外服务器 winserver2012 安装IIS后,安装urlrewrite模块总是自动停止应用程序池
    sql中char(9) char(10) char(13)
    通过 Microsoft.Ace.OLEDB 接口导入 EXCEL 到SQLSERVER
    SDL 当前连接查询脚本
    C# System.Drawing.Graphics 画图后,如何保存一个低质量的图片,一个占用空间较小的图片
  • 原文地址:https://www.cnblogs.com/xdotnet/p/vc_notifyicon.html
Copyright © 2011-2022 走看看