打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
c++ win32下窗口的最小化到托盘以及还原

  框架是用visual studio创建的win32控制台模板,然后自己添加最小化及还原部分代码。

  需要额外包含的头文件:

#include <shellapi.h>#include <WinUser.h>

  方式是在托盘区创建图标,隐藏主窗口。

  托盘创建图标:

void ToTray(HWND hWnd){    NOTIFYICONDATA nid;    nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);    nid.hWnd = hWnd;    nid.uID = IDR_MAINFRAME;    nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;    nid.uCallbackMessage = WM_TO_TRAY;//自定义的消息 处理托盘图标事件    nid.hIcon = LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(IDI_SMALL));    wcscpy_s(nid.szTip, _T("自定义程序名"));//鼠标放在托盘图标上时显示的文字    Shell_NotifyIcon(NIM_ADD, &nid);//在托盘区添加图标}

  关闭软件时需要销毁托盘区的图标,不然鼠标划过才会消失:

void DeleteTray(HWND hWnd){    NOTIFYICONDATA nid;    nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);    nid.hWnd = hWnd;    nid.uID = IDR_MAINFRAME;    nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;    nid.uCallbackMessage = WM_TO_TRAY;//自定义的消息名称 处理托盘图标事件    nid.hIcon = LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(IDI_SMALL));    wcscpy_s(nid.szTip, _T("自定义程序名"));//鼠标放在托盘图标上时显示的文字    Shell_NotifyIcon(NIM_DELETE, &nid);//在托盘中删除图标}

  最小化的时候去隐藏窗口需要捕捉最小化的消息,这个消息在处理WM_SIZE时,wParam参数为SIZE_MINIMIZED。

  窗口关闭时销毁托盘:

 

 

   双击托盘图标还原窗口:

 

 

 SetForegroundWindow(hWnd);这个函数是为了让窗口在前端显示。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
托盘编程全接触
MFC程序最小化到托盘
VC++如何在托盘区显示程序图标 >> 瀑布集
VC中系统托盘图标的实现
系统托盘编程_平台/系统_VC技术文章
如何使程序最小化到系统托盘
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服