当前位置: 首页 > news >正文

大山子网站建设百度极速版免费下载安装

大山子网站建设,百度极速版免费下载安装,政府网站建设问题及对策,人力资源网站建设计划书windows程序最小化到托盘并显示提示信息背景干货直接上代码解析控制窗口显示初始化托盘添加第一条消息更新界面结束啦背景 有些时候需要程序在最小化的时候可以看到程序进度,甚至需要完全关闭界面,只留下托盘显示,这篇文章就是在这个背景下诞…

windows程序最小化到托盘并显示提示信息

  • 背景
  • 干货
    • 直接上代码
    • 解析
      • 控制窗口显示
      • 初始化托盘
      • 添加第一条消息
      • 更新界面
      • 结束啦

背景

有些时候需要程序在最小化的时候可以看到程序进度,甚至需要完全关闭界面,只留下托盘显示,这篇文章就是在这个背景下诞生的,其实很简单,但是比较少用到,这里做个笔记记录一下。

干货

直接上代码

//启动隐藏主窗口和任务栏       1
ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW); //隐藏任务栏
ShowWindow(SW_HIDE);//启动显示主窗口和任务栏   2
ModifyStyleEx(WS_EX_TOOLWINDOW, WS_EX_APPWINDOW); //显示任务栏
ShowWindow(SW_SHOW);//处理托盘程序  3
NOTIFYICONDATA m_tnd;//初始化托盘    4
m_tnd.cbSize = sizeof(NOTIFYICONDATA);
m_tnd.hWnd = m_hWnd;
m_tnd.uID = IDR_MAINFRAME;
m_tnd.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
m_tnd.uCallbackMessage = WM_NOTIFYICON;
m_tnd.hIcon = m_hIcon;//添加第一条消息    5
wcscpy_s(m_tnd.szTip, _T("第一条消息"));
Shell_NotifyIcon(NIM_ADD, &m_tnd);//消息写到托盘    6
wcscpy_s(m_tnd.szTip, Message.GetBuffer());
Shell_NotifyIcon(NIM_MODIFY, &m_tnd);//更新消息      7
PostMessage(WM_UPDATE_MESSAGE, 0, 0);

解析

以上就是所有需要的代码

控制窗口显示

在主窗口中任意地方使用1的代码,主窗口和任务栏就隐藏了,使用2的代码,主窗口和任务栏就显示
其中ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);切换了显示的模式,WS_EX_APPWINDOW是显示任务栏,WS_EX_TOOLWINDOW是显示在托盘,这个函数还有更多参数可以自己去看和试一试

初始化托盘

一般在主界面的头文件添加3,声明一个托盘句柄,然后通过4初始化托盘,参数也很多,可以修改一下看看区别

添加第一条消息

添加消息使用5,修改消息使用6.
其实主要是wcscpy_s(m_tnd.szTip, Message.GetBuffer());将消息写到托盘的缓存,然后Shell_NotifyIcon(NIM_MODIFY, &m_tnd);
把消息发送出去NIM_ADD,NIM_MODIFY分别是添加和修改,看需要自己选择,我就添加了一次,后面都是使用的修改。

更新界面

最后如果有消息没有即时刷新,就需要使用7进行一个刷新提示,他并不会立马刷新界面,只是提示系统要repaint。

结束啦

关于托盘的问题就这些了欢迎指正。结尾彩蛋附windows窗口改变形状,窗口所有控件等比缩放。
只需要重载OnSize(UINT nType, int cx, int cy),在函数里面添加一下代码就可以了

if (old.x == 0 || old.y == 0){return;}float fsp[2];POINT Newp; //获取现在对话框的大小  CRect recta;GetClientRect(&recta);     //取客户区大小    Newp.x = recta.right - recta.left;Newp.y = recta.bottom - recta.top;fsp[0] = (float)Newp.x / old.x;fsp[1] = (float)Newp.y / old.y;TextSizeRate = min(fsp[0], fsp[1]);CRect Rect;int woc;CPoint OldTLPoint, TLPoint; //左上角  CPoint OldBRPoint, BRPoint; //右下角  HWND  hwndChild = ::GetWindow(m_hWnd, GW_CHILD);  //列出所有控件    while (hwndChild) {woc = ::GetDlgCtrlID(hwndChild);//取得IDRect = ItemRect[woc];OldTLPoint = Rect.TopLeft();TLPoint.x = long(OldTLPoint.x * fsp[0]);TLPoint.y = long(OldTLPoint.y * fsp[1]);OldBRPoint = Rect.BottomRight();BRPoint.x = long(OldBRPoint.x * fsp[0]);BRPoint.y = long(OldBRPoint.y * fsp[1]);Rect.SetRect(TLPoint, BRPoint);GetDlgItem(woc)->MoveWindow(Rect, TRUE);hwndChild = ::GetWindow(hwndChild, GW_HWNDNEXT);}
http://www.ritt.cn/news/23183.html

相关文章:

  • 遵化手机网站设计网络营销推广的特点
  • 商城网站建设公司排行百度指数网站
  • 网站怎么制作做在线分析网站
  • 眼镜企业网站建设方案2023年适合小学生的新闻有哪些
  • 开先建设集团网站百度站长app
  • wordpress上的php技术seo排名
  • 高端网站定制开发设计制作百度推广开户渠道公司
  • 用人名做网站域名刷百度指数
  • 网站推广服务报价表怎样做线上销售
  • erp系统页面厦门seo网站优化
  • 广告设计制作教程太原百度搜索排名优化
  • 市政府投资建设项目管理中心网站在线生成个人网站app
  • 嘉兴网站建设seo上海好的seo公司
  • 用iis做的网站怎么更改端口天津关键词排名提升
  • 温州做微网站设计友情链接适用网站
  • 格力网站的建设情况广东vs北京首钢
  • 客服外包怎么做简单网站建设优化推广
  • 做网站需要ps吗网络推广是啥
  • sem与seo的区别整站seo怎么做
  • 网站重新备案 需要关闭网站么网络销售真恶心
  • 怎样找回网站备案密码错误武汉网站开发公司
  • 深圳网站托管公司什么是seo技术
  • 码制作官网网站怎么优化
  • wordpress 粘贴图片一键优化表格
  • 群推广网站株洲seo
  • 重庆网站建设平台电商代运营公司十强
  • 网站建设软件app南宁seo产品优化服务
  • wordpress 正在例行维护seo去哪学
  • 2017年网站建设公司贴吧友情链接在哪
  • 域名和网站关联今日国内新闻最新消息10条